Forum Discussion
Rosario
Helper I
4 years agoAgregar colunma IF Conditional con DAX
Hola, agradecere me expliquen coo agregar una columna condicionada usando DAX. Este es el ejemplo y la coumna C seria respuesta del DAX: ID Year Condition Result A 2018 Continue A 201...
- 4 years ago
En primer lugar, cree una nueva tabla:
New Table = VAR _all = CROSSJOIN ( VALUES ( 'Table'[ID] ), VALUES ( 'Table'[Year] ) ) VAR _t = ADDCOLUMNS ( _all, "min", CALCULATE ( MIN ( 'Table'[Year] ), FILTER ( _all, [ID] = EARLIER ( 'Table'[ID] ) ) ) ) VAR _maxYear = MAXX ( ALL ( 'Table' ), [Year] ) RETURN SELECTCOLUMNS ( FILTER ( _t, [Year] >= [min] && [Year] <= _maxYear ), "ID", [ID], "Year", [Year], "Status", LOOKUPVALUE ( 'Table'[Condition Result], [ID], [ID], [Year], [Year] ) )A continuación, agregue una nueva columna:
Final = VAR _t = SUMMARIZE ( FILTER ( 'New Table', [ID] = EARLIER ( 'New Table'[ID] ) ), [Status] ) VAR _lastYear = MAXX ( FILTER ( 'New Table', [ID] = EARLIER ( 'New Table'[ID] ) && [Status] <> BLANK () ), [Year] ) VAR _lastStatus = LOOKUPVALUE ( 'New Table'[Status], [ID], [ID], [Year], _lastYear ) RETURN IF ( [Status] = BLANK (), IF ( ( "Continue" IN _t ) = FALSE, _lastStatus ), [Status] )Resultado final:
Saludos
Eyelyn Qin
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Syndicate_Admin
Administrator
4 years ago
En primer lugar, cree una nueva tabla:
New Table =
VAR _all =
CROSSJOIN ( VALUES ( 'Table'[ID] ), VALUES ( 'Table'[Year] ) )
VAR _t =
ADDCOLUMNS (
_all,
"min",
CALCULATE (
MIN ( 'Table'[Year] ),
FILTER ( _all, [ID] = EARLIER ( 'Table'[ID] ) )
)
)
VAR _maxYear =
MAXX ( ALL ( 'Table' ), [Year] )
RETURN
SELECTCOLUMNS (
FILTER ( _t, [Year] >= [min] && [Year] <= _maxYear ),
"ID", [ID],
"Year", [Year],
"Status", LOOKUPVALUE ( 'Table'[Condition Result], [ID], [ID], [Year], [Year] )
)
A continuación, agregue una nueva columna:
Final =
VAR _t =
SUMMARIZE (
FILTER ( 'New Table', [ID] = EARLIER ( 'New Table'[ID] ) ),
[Status]
)
VAR _lastYear =
MAXX (
FILTER (
'New Table',
[ID] = EARLIER ( 'New Table'[ID] )
&& [Status] <> BLANK ()
),
[Year]
)
VAR _lastStatus =
LOOKUPVALUE ( 'New Table'[Status], [ID], [ID], [Year], _lastYear )
RETURN
IF (
[Status] = BLANK (),
IF ( ( "Continue" IN _t ) = FALSE, _lastStatus ),
[Status]
)
Resultado final:
Saludos
Eyelyn Qin
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.