Forum Discussion

Quakker's avatar
Quakker
Helper II
1 year ago
Solved

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...
  • MFelix's avatar
    1 year ago

    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;4i603E43FDD7532C48ng

     nbsp;4i603E43FDD7532C48ng

    nbsp;4i603E43FDD7532C48ng

    Please se file attached.ng SWITCH(

    lease se file attached.ng

     nbsp; se file attached.ng