Forum Discussion
Quakker
1 year agoHelper II
P&L Statement - Show elements with no data - Matrix
Hi, we have a problem within our financial Report and the integated costcenter. As you can see we have one Measure which creates the P&L lines. It has to be created row by row because t...
- 1 year ago
Hi Quakker ,
Try the following code:
ch is found ),AYEAR = VAR AYEAR_VARIABLE = IF( ISINSCOPE(LKP_CM_SCHEME[CM_POSITION_LVL_2]), SWITCH( SELECTEDVALUE(LKP_CM_SCHEME[CM_POSITION_LVL_2]), "Direct Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 10), "Indirect Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 20), "Other Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 30), "Direct Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 40), "Indirect Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 50), "Other Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 60), "Thereof Transport Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 70), "Production Costs GER", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 80), "Production Costs FRA", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 90), "Production Costs USA", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 100), "Production Costs Other", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 110), "Service", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 120), "Management", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 130), "IT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 140), "Project Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 150), "Support Functions", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 160), "Extraordinary Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 170), BLANK() -- return BLANK() if no match is found ), SWITCH( SELECTEDVALUE(LKP_CM_SCHEME[CM_POSITION_LVL_1]), "Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10), "Direct Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20), "Gross Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10)+CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20), "Contribution Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10)+CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20) + CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] IN {80, 90, 100, 110}), "EBIT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 70), -- irrelevant for sample "Operating EBIT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 80), -- irrelevant for sample BLANK() -- return BLANK() if no match is found ) ) RETURN IF( ISINSCOPE(DATA_FALSE[POS_NR_LVL2]) || ISINSCOPE(DATA_FALSE[Costcenter]), AYEAR_VARIABLE, COALESCE(AYEAR_VARIABLE, "<u+200f><u+200f><u+200e> <u+200e>") )nbsp; found ),
nbsp; found ),ewsem4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ngnbsp;4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ngPlease se file attached.ng SWITCH(
lease se file attached.ngnbsp; se file attached.ng
MFelix
1 year agoSuper User
Hi Quakker ,
Try the following code:
AYEAR =
VAR AYEAR_VARIABLE = IF(
ISINSCOPE(LKP_CM_SCHEME[CM_POSITION_LVL_2]),
SWITCH(
SELECTEDVALUE(LKP_CM_SCHEME[CM_POSITION_LVL_2]),
"Direct Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 10),
"Indirect Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 20),
"Other Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 30),
"Direct Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 40),
"Indirect Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 50),
"Other Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 60),
"Thereof Transport Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 70),
"Production Costs GER", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 80),
"Production Costs FRA", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 90),
"Production Costs USA", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 100),
"Production Costs Other", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 110),
"Service", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 120),
"Management", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 130),
"IT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 140),
"Project Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 150),
"Support Functions", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 160),
"Extraordinary Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] = 170),
BLANK() -- return BLANK() if no match is found
),
SWITCH(
SELECTEDVALUE(LKP_CM_SCHEME[CM_POSITION_LVL_1]),
"Revenues", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10),
"Direct Costs", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20),
"Gross Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10)+CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20),
"Contribution Margin", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 10)+CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 20) + CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[POS_NR_LVL2] IN {80, 90, 100, 110}),
"EBIT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 70), -- irrelevant for sample
"Operating EBIT", CALCULATE(SUM(DATA_FALSE[AYEAR]), DATA_FALSE[position_nr] = 80), -- irrelevant for sample
BLANK() -- return BLANK() if no match is found
)
)
RETURN
IF(
ISINSCOPE(DATA_FALSE[POS_NR_LVL2]) || ISINSCOPE(DATA_FALSE[Costcenter]),
AYEAR_VARIABLE,
COALESCE(AYEAR_VARIABLE, "<u+200f><u+200f><u+200e> <u+200e>")
)
ch is found
),
nbsp; found ),
nbsp; found ),ewsem4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ngnbsp;4i603E43FDD7532C48ng
nbsp;4i603E43FDD7532C48ngPlease se file attached.ng SWITCH(
lease se file attached.ngnbsp; se file attached.ng
Quakker
1 year agoHelper II
Hi MFelix,
can´t believe that is was just a simple adjustment within the code.
Thank you very much for your help!
I really thought it´s not possible