Formula Forensics. 009 – Pradhishnair’s Chainage Problem

Share

Facebook
Twitter
LinkedIn

A common Forum question and one that Chandoo has written about a few times is, Does my data overlap with another range?

Last week, Pradhishnair, asked in the Chandoo.org Forums I need to find if the values between range D2:E2 are overlapping in any of the following rages, if yes then where? (may be row number)”

I answered with an array formula:

{=”Overlap Row S.no. = ” &MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))}

Which returns ether:

Overlap Row S.no. = x (If there is an overlap)

or

Overlap Row S.no. = 0 (If there is no overlap)

So today in Formula Forensics we will take a look at how the above formula works with a worked example.

 

Chainage

As always you can follow along with a worked example. This is a subset of Pradhishnair’s Data to simplify the length of the equations, but otherwise is the same as the original post: Download Here

Pradhishnair’s data consists of a list of chainages. Chainages are measurements of distances from a fixed point and relate to a segment of something. Chainage From is to the closest end of the segment and and Chainage To is to the furthest end of the segment and by default these are in order, that is To is always greater than From.

Using this we can check for overlapping data by simply checking if the From is less than the remaining To’s or the To value is greater than the remaining From’s

This is done for each row compared to the remaining rows of data by the array formula

=”Overlap Row S.no.: ” & MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41))) Ctrl Shift enter

We can see that the above equation simply joins

“Overlap Row S.no.: “

To the result of

MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))

Using the & operator

It will return:

Overlap Row S.no. = 0 if there is no overlap

Or

Overlap Row S.no. = x If there is an overlap.

So the function

MIN(IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)))

Is used to return the minimum value of an If() formula which is its only component

The If() statement usually has three components:

=If( Condition, Value if True, Value if False)

In our case, I will evaluate Row 2, Particularly Cell G2, against the remaining entries in the two lists.

=If((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41))

Condition:  (D3:$D$41<=E2) *(E3:$E$41>=D2) >0

Value if True:  (A3:$A$41), This is just the S.No. in Column A

Value if False:  Note that the If statement has no Value if it is False, I could put any value there eg: -1 or 0, but Excel evaluates it to 0 anyway so it hasn’t been used.

 

The If Statement says If (D3:$D$41<=E2) *(E3:$E$41>=D2) >0, then return (A3:$A$41)

What the condition is saying is If the To Data in the Current Row, Row 2, is Greater than or equal to the other From Values or the From Data in the Current Row, Row 2, is Less than the other To Value, Then this is True

To check this, in Cell I2, enter  =(D3:$D$41<=E2) *(E3:$E$41>=D2) and evaluate it with F9 instead of Enter

Excel returns ={1;1;0;0;0;0;0;0;0}

Excel is showing us that the first and second entries have overlapping data.

Which we can see if we look at the data

The >0 at the end of the (D3:$D$41<=E2) *(E3:$E$41>=D2) >0, transforms the array of 0’s and 1’s to an array of Falses and Trues

To check this, in I3, enter  =(D3:$D$41<=E2) *(E3:$E$41>=D2)>0 and evaluate it with F9 instead of Enter

Excel returns ={TRUE;TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

Now the If Statement will be True for the first two entries in the array and so will evaluate the Value if True component of the If Formula:  (A3:$A$41)

We can check this

In cell I4 enter

=IF((D3:$D$41<=E2) *(E3:$E$41>=D2) >0, (A3:$A$41)) and press F9 instead of Enter

Excel returns

={2;3;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE}

Which is the array of S.No’s which match our criteria

Now Min comes in

=MIN({2;3;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE})

Min returns the Minimum of these which is 2.

And that is appended to “Overlap Row S.No. = “

To return the answer:  Overlap Row S.No. = 2

Which is the first overlapping row with Row 1

 

Custom Number Formats

You may have noticed that the numbers in Pradhishnair’s worksheet look a bit odd with a + in the middle: eg: D3 displays 142+000

Pradhishnair is using a Custom Number Format of #+000

Select a Cell, eg D2, Press Ctrl 1, Select the Number Tab

If you select these cells and Press F2 Excel will show that the cells value is 142000

But Excel is using the custom Number format of #+000 to display the number with 3 digits after the +

 

Links to Overlapping Data Posts

http://chandoo.org/wp/2010/06/01/date-overlap-formulas/

http://chandoo.org/wp/2011/03/09/ec1-machine-scheduling-in-excel/

 

Download

You can download a copy of the above file and follow along, Download Here.

 

Other Formula Forensics Posts

You can learn more about how to pull Excel Formulas apart in the following posts

Formula Forensic Series:

 

We Need Your Help

I received 3 ideas over the Xmas break from readers, and these will feature in coming weeks.

However I do need more ideas for the rest of 2012 and so I need your help.

 

If you have a neat formula that you would like to share and explain, try putting pen to paper and draft up a Post as Luke did in Formula Forensics 003. or like above.

If you have a formula that you would like explained but don’t want to write a post also send it in to Chandoo or Hui.

 

ps: I’m traveling to Esperance; Western Australia for a short holiday with the family but have left a neat Formula Forensic for you for next week.

Facebook
Twitter
LinkedIn

Share this tip with your colleagues

Excel and Power BI tips - Chandoo.org Newsletter

Get FREE Excel + Power BI Tips

Simple, fun and useful emails, once per week.

Learn & be awesome.

Welcome to Chandoo.org

Thank you so much for visiting. My aim is to make you awesome in Excel & Power BI. I do this by sharing videos, tips, examples and downloads on this website. There are more than 1,000 pages with all things Excel, Power BI, Dashboards & VBA here. Go ahead and spend few minutes to be AWESOME.

Read my storyFREE Excel tips book

Overall I learned a lot and I thought you did a great job of explaining how to do things. This will definitely elevate my reporting in the future.
Rebekah S
Reporting Analyst
Excel formula list - 100+ examples and howto guide for you

From simple to complex, there is a formula for every occasion. Check out the list now.

Calendars, invoices, trackers and much more. All free, fun and fantastic.

Advanced Pivot Table tricks

Power Query, Data model, DAX, Filters, Slicers, Conditional formats and beautiful charts. It's all here.

Still on fence about Power BI? In this getting started guide, learn what is Power BI, how to get it and how to create your first report from scratch.

17 Responses to “Budget vs. Actual Profit Loss Report using Pivot Tables”

  1. Dau says:

    Good Work, Yogesh & Chandoo! Thanks.

  2. Abdul Kader says:

    Hi everybody,
    first sorry I am late to say something about this topic;actually I was waiting last part
    second I am not accountant I am an Engineer
    third """"Very Important""" the idea is not about Loss but I am sure it is profit
    Based on third it shows:
    1- How to use EXCEL
    2- How to use pivot TABLES
    3- How to collect and arrange DATA
    4- How to make reports

    Many Thanks

  3. UB says:

    Hi Yogesh and Chandoo,

    Thank you for sharing your knowledge!
    You guys are great!

  4. Alejandro says:

    thanks chandoo and yogesh, thanks for you lessons, are great!....i have a idea for a budget. I try to do it..... thanks for all

  5. SAUL ESPINOZA says:

    Thanks a lot for sharing the most powerful tool worldwide "knowledge"
    Warm greetings from Peru

  6. juanito says:

    Hi -
    This is a really great article because it's a simple and common thing you'd want to do with a pivot table but not at all obvious how to do it! So - muchas gracias to Chandoo and Yogesh!
    One thing - I couldn't get past the group error in the sample file. I would click on ungroup but it didn't seem to have any effect. I'd appreciate it if anybody has any pointers here.

    -Juanito

  7. Adam says:

    Hi Chandoo

    I am also having the group error. Can't seem to ungroup? Appreciate if you explain further on the steps required in order to get to calculated items.

    Many thanks and keep up the great work.

    Cheers
    Adam

  8. Catherine says:

    Hi Chandoo,

    I'm struggling resolving the problem depicted below:
    I have a set of data, with (among others) a "Region" field (can be APJ, EMEA, or AMS), and a "Country" field.
    Unfortunately, I need to group data by the following 4 Regions: APeJ, Japan, EMEA and AMS.

    I first tried to make a pivot with Region and Country in the rows (or columns), and then group Country data as per the above.
    Alas, as soon as I have a new Country that appear in my data set, my groupings are broken, and I have to redo the job of ungrouping, grouping etc.

    I thought I could try to use calculated item, by adding first a new column to my dataset concatenating Region_Country, and create an "APeJ" calculated item that would sum all the "APJ_*" and substract the "APJ_Japan", but again, no clue, as I can't find a way to use any wild card in those formulas.

    Given that I already found extremely helpful tips and tricks in your site that helped me manage that bunch of data, I'm pretty sure you'll have a bright idea on how I can solve that one!

    Thanks in advance for your lights!

    • Chandoo says:

      Hi Catherine...

      In such cases, I advice using an additional column in the data itself. You can set-up a grouping table else where with country in first column, region in second column. And then in the data, you can add an extra column and use VLOOKUP to fetch the region based on the country.

      Then feed this entire data (with extra column) to pivot table and use the extra column to group the data.

      • Catherine says:

        Hi Chandoo,

        Thank you for your prompt answer.
        I finally came to the same conclusion - after a rest 🙂 . I was probably too tired Friday evening (it was rather late), having spent hours in manipulating all my surveys data so as to pull rolling averages, make nice graphs and so on, and was trying to find a complex solution when there was a simple one.

        Thanks again,
        Catherine

  9. Tzu says:

    Hey,

    Great post!

    I for example have different database structure with the following fields :

    Date, Expense, Income, Sum (Income - Expense), Category (Sales, Cost of Goods and etc).

    Creating a P&L report for the whole year works great. Including gross margin % and etc.

    Though, creating P&L report by QTR/Month is becoming impossible since i get the following error : “This PivotTable report field is grouped. You cannot add calculated item to grouped filed.”

    Is there a solution for this kind of problem?
     

  10. klumsyboy says:

    Like Adam and Juanito, I also cannot ungroup.

    Would appreciate it if you can add a few more lines and a screenshot or two on where to put the mouse cursor to ungroup. 

  11. klumsyboy says:

    Hi,  I have figured out the ungrouping problem. One of the earlier steps was to group by month, if you pull the month back down to the column then right click and then select ungroup, then pull the month back up so you end up with just data source and budget/actual as the headings, then you can continue on.

  12. Kent Lau says:

    To solve the ungroup problem, my method is:
    Copy the "data" sheet to a whole new Excel workbook
    and directly work on Part 6.

    And since it is a fresh copy, Excel don't show me the "can't ungroup" problem. Hope this help.

    Thank you Yogesh for this wonderful tutorial.

    Kent, Malaysia

  13. felipe says:

    Just when i thought pivots were awesome i learn about inserting the calculated fields and that makes them more awesome. chandoo where have you been all my life.

  14. barrierone says:

    Hello - your P&L pivot version has really impressed my boss and would like to use it. I have applied it for a actual vs budget vs forecast model I have created. One problem. In your variance above the operating profit percent % variance shows 33.8% but I want it to show (0.01) point or the true diff from prior budget.

    I know I can add calculation to the side but boss would like to see it in pivot table.

    Please help
    Thanks

  15. barrierone says:

    I have a further query which may solve my above dilemma. Is it possible to add a column that calculates percent increase. So in the example above a new column would be added to show variance %.

    Any help would be appreciated.

    Thanks