Nov 17 2021 08:43 AM - edited Nov 17 2021 08:44 AM
Hi All,
I want to know if this is possible. I'm trying to create a formula for two rows (Forecast & Actuals) The Actual data input sheet is laid out in a way I can easily do the SUMIFS formula to get the required information in each cell. The trouble I'm having is the forecast input sheet has the weeks going across like this.
27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
I don't know how to structure the formula to show sum of forecasts for each row in my Master sheet using the adjacent rows for criteria.
Does anyone know how this can be done?
Any help would be great.
Nov 17 2021 09:36 AM
Hi @excel_learner,
this table structure requires a relativly complex formula that includes the OFFSET-function. I have entered the formulas in column G of the Master sheet in the attached file.
But be aware that it checks only the week, the area and the category value in row 2 of the Master sheet. It does not consider the entries in column D ("LDP").
Hope, this helps.
Nov 17 2021 10:41 AM
Nov 17 2021 12:12 PM
@excel_learner I created a 'master formula for that column using SWITCH instead of IFS. as opposed to @Martin_Weiss using OFFSET I used INDEX which is probably 6 vs 1/2 doz. I included the added criteria but my problem and why I didn't post earlier and had to come back to it is that I found out that your LDP values on the Master do not match your LDP values on the Forecast. I could add even more complexity to the formula but I think it might be better for you to just pick a convention and use it. Here is the formula:
=SWITCH($E10764,
"Forecast",IFERROR(SUMIFS(INDEX('Forecast Input'!$A:$BO,,MATCH(TEXT($A10764,"0"),'Forecast Input'!$1:$1,0)),'Forecast Input'!$A:$A,Master!$C10764,'Forecast Input'!$D:$D,Master!$D10764),0),
"Actual",SUMIFS('CMO Input'!$Q:$Q,'CMO Input'!$E:$E,Master!$A10764,'CMO Input'!$C:$C,Master!$C10764,'CMO Input'!$AJ:$AJ,Master!$D10764,'CMO Input'!$AU:$AU,Master!F$2),
"")
also it could be cleaner if you have Excel 365 and we could use LET() and FILTER() statements but you didn't tell us what version of Excel you are using.
In the attached you can see the formula and if you ctrl-down in column G you will find where I figured out the problem with the LDP naming.
Nov 17 2021 01:03 PM
Hi @mtarler
Thank you I have now changed the LDP Values to match master sheet, when you said I could add even more complexity to the formula, in what way may I ask please ? I am using office 365, could you possibly show a cleaner formula with LET() and FILTER().
Nov 18 2021 09:36 AM
Nov 19 2021 02:02 AM
Hi @mtarler
I have used the following formula but don't get any results for actuals also get the wrong totals on forecast for the specific categories.
The formula i used was
=SWITCH($E6,"Forecast",IFERROR(SUMIFS(INDEX('Forecast Input'!$A:$BO,,MATCH(TEXT($A6,"0"),'Forecast Input'!$1:$1,0)),'Forecast Input'!$A:$A,Master!C6,'Forecast Input'!$D:$D,Master!D6),0),"Actual",SUMIFS('CMO Input'!$Q:$Q,'CMO Input'!$E:$E,Master!$A6,'CMO Input'!$C:$C,Master!$C6,'CMO Input'!$AJ:$AJ,Master!$D6,'CMO Input'!$AU:$AU,Master!$F2),"")
I also notice the section of the formula for forecast doesn't have the category criteria from master sheet.
Do you know how I can fix this to get the actuals and forecast based on categories in cells F2, G2, H2 etc of the Master sheet based on criteria of week, Area, LDP,
Nov 19 2021 07:36 AM
@excel_learner no it doesn't use category criteria because I didn't see you requesting that but now looking at it we have another matching issue:
Master sheet :
Forecast sheet:
As for the Actual not getting calculated i just used your formula. The problem appears that you didn't "lock" row 2 on the category conditional at the very end of the formula. Basically $F2 should be F$2 so the column F can move to column G, etc... when you copy the formula to those columns but row 2 stays row 2 when you copy down the column.
Nov 19 2021 08:01 AM
Hi@mtarler
Sorry silly mistake I did there, thank you for pointing that out though.
If I was to add the categories (F2,G2,H2 and so on) to the Forecast part of the syntax how can I do this?
This would be so I can get the forecast based on the category in each column.
Nov 19 2021 09:08 AM
Nov 19 2021 10:26 AM
Is there way I can do any back testing with the data to see where the problem is
Nov 19 2021 11:19 AM
Nov 21 2021 05:14 AM
Nov 21 2021 07:59 AM - edited Nov 21 2021 08:01 AM
Solutionsure. Switch is like a multiple IF statement. Instead of IF A=1 then ... ELSE IF A=2 then ... ELSE IF A=3 ... where you keep doing comparison against the same value, SWITCH just takes that one input and will SWITCH the output. If you type =SWITCH( into a cell then excel can show you the parameters but basically the value in question then pairs of condition, output so if the value meets a condition it will output that part.
INDEX will take an array or table and return the value or array that you specify. So an array of a,b,c,d,e,f and you index 3 then you get c. If it is a table you can specify both row and column to get a single value or just the row or just the col to get back the corresponding row or column. In your case here is the formula broken out with notes. I added a periods to create indenting but the word wrap may still make it confusing:
=SWITCH($E6, <<<this is the check value
"Forecast", <<<this is the first condition/check for switch
... IFERROR(SUMIFS(
...... INDEX('Forecast Input'!$A:$BO, <<< this is the range for the index
............. , <<< this is the row for the index (i.e. return all rows
.............. MATCH(TEXT($A6,"0"),'Forecast Input'!$1:$1,0)), <<< this match find the column you want for the index
........ 'Forecast Input'!$A:$A, Master!$C6, <<<this is a conditional pair for sumifs
........ 'Forecast Input'!$D:$D, Master!$D6, <<<this is a conditional pair for sumifs
........ [[[ADD RANGE TO CHECK , CONDITIONAL]]] ) <<<this is a conditional pair for sumifs
... ,0), <<< this is the value to return if error found
"Actual", <<<this is the second condition/check for switch
... SUMIFS(
......... 'CMO Input'!$Q:$Q,
......... 'CMO Input'!$E:$E, Master!$A6,
........ 'CMO Input'!$C:$C, Master!$C6,
........ 'CMO Input'!$AJ:$AJ, Master!$D6,
....... 'CMO Input'!$AU:$AU, Master!F$2),
"") <<< this is the default result for switch (i.e. if it didn't match any of the above
Nov 22 2021 08:10 AM
@mtarler Thank you
What does the part highlighted in red refer to
MATCH(TEXT($A6,"0"),'Forecast Input'!$1:$1,0)), <<< this match find the column you want for the index , ?
Nov 22 2021 01:36 PM
Nov 21 2021 07:59 AM - edited Nov 21 2021 08:01 AM
Solutionsure. Switch is like a multiple IF statement. Instead of IF A=1 then ... ELSE IF A=2 then ... ELSE IF A=3 ... where you keep doing comparison against the same value, SWITCH just takes that one input and will SWITCH the output. If you type =SWITCH( into a cell then excel can show you the parameters but basically the value in question then pairs of condition, output so if the value meets a condition it will output that part.
INDEX will take an array or table and return the value or array that you specify. So an array of a,b,c,d,e,f and you index 3 then you get c. If it is a table you can specify both row and column to get a single value or just the row or just the col to get back the corresponding row or column. In your case here is the formula broken out with notes. I added a periods to create indenting but the word wrap may still make it confusing:
=SWITCH($E6, <<<this is the check value
"Forecast", <<<this is the first condition/check for switch
... IFERROR(SUMIFS(
...... INDEX('Forecast Input'!$A:$BO, <<< this is the range for the index
............. , <<< this is the row for the index (i.e. return all rows
.............. MATCH(TEXT($A6,"0"),'Forecast Input'!$1:$1,0)), <<< this match find the column you want for the index
........ 'Forecast Input'!$A:$A, Master!$C6, <<<this is a conditional pair for sumifs
........ 'Forecast Input'!$D:$D, Master!$D6, <<<this is a conditional pair for sumifs
........ [[[ADD RANGE TO CHECK , CONDITIONAL]]] ) <<<this is a conditional pair for sumifs
... ,0), <<< this is the value to return if error found
"Actual", <<<this is the second condition/check for switch
... SUMIFS(
......... 'CMO Input'!$Q:$Q,
......... 'CMO Input'!$E:$E, Master!$A6,
........ 'CMO Input'!$C:$C, Master!$C6,
........ 'CMO Input'!$AJ:$AJ, Master!$D6,
....... 'CMO Input'!$AU:$AU, Master!F$2),
"") <<< this is the default result for switch (i.e. if it didn't match any of the above