cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
KarmaPolice
Frequent Visitor

En la tabla comparación compleja para derivar nueva columna

Tener los siguientes datos de la tabla

usageDatenombre de usuarioProductnameusageHourstokensConsumido
1/1/2020Joea54
1/2/2020Johnb225
1/3/2020Joea24
1/1/2020Johnb225
1/2/2020Johna224
1/2/2020Johnb45

Estoy tratando de agregar una columna con los siguientes criterios, pero no puedo averiguar cómo hacerlo...

El valor es:

- El número de tokens consumidos, en el día anterior, por el mismo id de usuario (si existe), en el mismo producto (si existe), si horas de día anteriores > 20 (si existe)

Así que el resultado deseado sería algo como esto (columna de notas agregada para explicar el valor, no espere sin esta columna)

usageDatenombre de usuarioProductnameusageHourstokensConsumidoanteriorTokensNotas
1/1/2020Joea540ningún uso en absoluto por joe en 12/31/19
1/2/2020Johnb555producto utilizado por john b para >20 hrs el 1/1/20
1/3/2020Joea240ningún uso en absoluto por joe en 1/2/20
1/1/2020Johnb2250ningún uso en absoluto por John el 12/31/19
1/2/2020Johna2240john no usó el producto a en 1/1/20
1/3/2020Johnb450john usó el producto b en 1/2 pero no por más de >20 hrs

es posible este tipo de comparación en línea? o tal vez tengo que crear algunas tablas temporales para usar?

1 REPLY 1
v-yingjl
Community Support
Community Support

Hola @KarmaPolice ,

Puede crear una medida para obtener el resultado esperado:

Previous Token = 
VAR _currentdate =
    SELECTEDVALUE ( 'Table'[usageDate] )
VAR _currentname =
    SELECTEDVALUE ( 'Table'[userName] )
VAR _currentproduct =
    SELECTEDVALUE ( 'Table'[productName] )
VAR _previoushour =
    CALCULATE (
        MAX ( 'Table'[usageHours] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            [usageDate] = _currentdate - 1
                && [userName] = _currentname
                && [productName] = _currentproduct
        )
    )
VAR _previoustoken =
    CALCULATE (
        MAX ( 'Table'[tokensConsumed] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            [usageDate] = _currentdate - 1
                && [userName] = _currentname
                && [productName] = _currentproduct
        )
    )
RETURN
    IF ( _previoushour > 20, _previoustoken, 0 )

result.png

Aquí está el archivo de muestra espera ayudarle, por favor pruébelo: PBIX

Mejores looks,
Yingjie Li

Si este post ayuda, por favor considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

Helpful resources

Announcements
PBI User Groups

Welcome to the User Group Public Preview

Check out new user group experience and if you are a leader please create your group!

MBAS on Demand

2021 Release Wave 2 Plan

Power Platform release plan for the 2021 release wave 2 describes all new features releasing from October 2021 through March 2022.

July 2021 Update 768x460.png

Check it out!

Click here to read more about the July 2021 Updates

Power Query PA Forum 768x460.png

Check it out!

Did you know that you can visit the Power Query Forum in Power BI and now Power Apps

Top Solution Authors