Forum Discussion
Matrix and database in POWER BI
- Anonymous2 years ago
Hi Audrey_ADAPEI35 ,
I create a sample to have a test. Considering the New Year's Eve, I added a new material: ZZZ1234.
DimTables:
Dim Arrêt = DATATABLE( "Arrêt",STRING, "Order",INTEGER, "Arrêt Start",INTEGER, "Arrêt End",INTEGER, { {"Arrêt court (<= 3j)",1,,3}, {"Arrêt long (de 3 à 7 jours)",2,4,7}, {"Arrêt long (de 8 à 30 jours)",3,8,30}, {"Arrêt long (de 30 à 90 jours)",4,31,90}, {"Arrêt long (> 90 jours)",5,91,} } )DimDate = ADDCOLUMNS(CALENDARAUTO(),"Year",YEAR([Date]),"YearMonth",YEAR([Date])*100 + MONTH([Date]))Data Model:
Measures:
MEASURE = VAR _YearMonthStart = MIN ( DimDate[YearMonth] ) VAR _YearMonthEnd = MAX ( DimDate[YearMonth] ) VAR _FILTER = FILTER ( 'Table', 'Table'[ANNEE MOIS] >= _YearMonthStart && 'Table'[ANNEE MOIS] <= _YearMonthEnd ) VAR _SUMMARIZE = SUMMARIZE ( _FILTER, [MATRICULE], [ANNEE],"Sum", VAR _ANNEE = [ANNEE] VAR _MATRICULE = [MATRICULE] RETURN SUMX (FILTER(_FILTER,[ANNEE] = _ANNEE && [MATRICULE] = _MATRICULE), [NB_JOURS] ) ) RETURN SWITCH ( MAX ( 'Dim Arrêt'[Order] ), 1, COUNTX ( FILTER ( _SUMMARIZE, [ANNEE] = MAX(DimDate[Year]) && [Sum] <= 3 ), [MATRICULE] ), 2, COUNTX ( FILTER ( _SUMMARIZE, [ANNEE] = MAX(DimDate[Year]) && [Sum] > 3 && [Sum] <= 7 ), [MATRICULE] ), 3, COUNTX ( FILTER ( _SUMMARIZE, [ANNEE] = MAX(DimDate[Year]) && [Sum] > 7 && [Sum] <= 30 ), [MATRICULE] ), 4, COUNTX ( FILTER ( _SUMMARIZE, [ANNEE] = MAX(DimDate[Year]) && [Sum] > 30 && [Sum] <= 90 ), [MATRICULE] ), 5, COUNTX ( FILTER ( _SUMMARIZE, [ANNEE] = MAX(DimDate[Year]) && [Sum] > 90 ), [MATRICULE] ) ) + 0Result is as below.
Best Regards,
Rico ZhouIf this post helps, then please consider Accept it as the solution to help the other members find it more quickly.
Step 0: I use these data tables below.
Step 1: I add a relationship.
Step 2: I add a 'C_Arret Value' column to the 'DATA' Table.
C_Arret Value = RELATED(Arret[Value])
Step 3: I add a 'MOIS Table'.
MOIS Table = SUMMARIZE('DATA','DATA'[MOIS])
Step 4: I make a slicer and a measure.
M_MOIS_Sel = SELECTEDVALUE('MOIS Table'[MOIS])
Step 5: I make 2 measures and a Card visual.
M_Arret Value_Max = CALCULATE(MAX('DATA'[C_Arret Value]),FILTER(ALLSELECTED('DATA'),'DATA'[MOIS]<=[M_MOIS_Sel]))
M_Arret_Max = LOOKUPVALUE(Arret[Arret],'Arret'[Value],[M_Arret Value_Max])
Step 6: I make a matrix.