Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
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 | 2019 | Continue |
A | 2020 | Continue |
A | 2021 | Continue |
B | 2018 | Left |
C | 2018 | Continue |
C | 2019 | Continue |
C | 2020 | Continue |
C | 2021 | Continue |
D | 2019 | new |
D | 2020 | left |
Muchas gracias y saludos desde Brisbane Australia.
Rosario.
Solved! Go to Solution.
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.
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.
Gracias Samarth por tu apoyo, de mi tabla de ejemplo deseo obtener la columna C, Condition Result
Saludos,
Rosario
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount! Prices go up Feb. 11th.
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.