Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Puede CALCULATETABLE crear una tabla a partir de otra tabla utilizando:
1) columnas que coinciden (en) una lista/matriz específica de nombres de columna
2) filas para cada una por separado o todas las columnas filtradas anteriores, que coincidan con criterios específicos
Entonces, por ejemplo, de la tabla de origen a continuación:
Col1 | Col2 | Col3 |
A | 01/01/2000 | 1 |
B | 02/01/2000 | 2 |
C | 03/01/2000 | 3 |
Para poder CALCULAR lo siguiente:
Col1 | Col3 |
A | 2 |
B | 4 |
Eligiendo todas las columnas que están en la lista {Col1,Col3} y todas las filas que coinciden con Col2=CALCULATE(MAX(Col2),ALLEXCEPT(Col1)) (es decir, las filas donde Col2 es la fecha máxima para cada valor de Col1.
Creo que el CALCULATETABLE acepta nombres de columna literales y no expresiones y también necesita especificar cada uno por uno y no en una lista.
¡Gracias!
Creo que puedes probar este código para crear una nueva tabla.
Table 2 =
SELECTCOLUMNS (
FILTER (
'Table',
VAR _MAX_COL2 =
CALCULATE ( MAX ( 'Table'[Col2] ), ALLEXCEPT ( 'Table', 'Table'[Col1] ) )
RETURN
'Table'[Col2] = _MAX_COL2
),
"Col1", 'Table'[Col1],
"Col3", 'Table'[Col3]
)
Mi muestra:
El resultado es el siguiente.
Saludos
Rico Zhou
Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Echa un vistazo a la función GENERAR . Le permite crear uniones donde puede que no haya linaje.
Esto no va a ser sintácticamente preciso porque lo estoy escribiendo en el Bloc de notas. Pero debería acercarte...
GENERATE(
TableA,
FILTER(
TableB,
Col1 = EARLIER(TableA[Col1)
)
)
¡Espero que esto ayude!