Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
Tengo 2 tablas de hechos en mi modelo. fact1 que tiene una línea por uniqueid para un proyecto y fact2 que tiene una línea por cambio de fase en cada proyecto, por lo que el historial del proyecto. Se ven como se muestra a continuación y están conectados por una relación inactiva en el identificador de proyecto único (1 a muchos) como las relaciones activas son a todas las tablas de dimensiones compartidas entre ellos.
Me gustaría contar cuántas comprobaciones hay por ID de proyecto único en la tabla de historial de fact2 y traerlo de vuelta como un recuento en la tabla de hechos 1 como se muestra a continuación.
Por el momento he creado una tabla resumida que filtra en la tabla de historial donde el estado de comprobación no está en blanco, luego cuenta las filas y lo suma contra los projectuniqueids. Creo que vincule esta tabla a la tabla fact1 y busque el valor usando related().
Me pregunto si hay una función dax que pueda hacer todo esto de una sola vez para no tener tablas resumidas duplicadas en el modelo.
Intenté crear la tabla calculada como una variable, pero luego no puedo averiguar cómo acceder a una columna en una variable de tabla en el dax
Gracias
fact1project
Projectuniqeid | Fecha de inicio | Fecha de finalización | Recuentos totales de cheques | Conteo de cheques externos | Recuento de cheques internos |
1 | 2 | 1 | 1 | ||
2 | 2 | 2 | 0 | ||
3 |
Fatct2projecthistory
Projecthistoryuniqiueid | Projectuniqueid | ProjectTransitionID | Projectcheckingstatus |
A | 1 | 1 | Comprobación externa |
B | 1 | 2 | Comprobación interna |
C | 1 | 3 | |
D | 2 | 1 | Comprobación externa |
E | 2 | 3 | |
F | 2 | 4 | Comprobación externa |
Para lograr esto en Power BI con DAX, puede crear una columna calculada en la tabla "fact1project" que cuente el número de comprobaciones de la tabla "fact2projecthistory" para cada identificador de proyecto único. Puede utilizar las funciones SUMX y FILTER para realizar este cálculo. Esta es la fórmula de DAX para crear la columna calculada:
''DAX
Recuentos totales de cheques =
VAR ProjectUniqueID = 'fact1project'[Projectuniqueid]
DEVOLUCIÓN
COUNTROWS(
FILTRO(
'fact2projecthistory',
'fact2projecthistory'[Projectuniqueid] = ProjectUniqueID
&& NOT ISBLANK('fact2projecthistory'[Projectcheckingstatus])
)
)
```
Esta fórmula hace lo siguiente:
1. Primero captura el ID único del proyecto actual en la variable 'ProjectUniqueID'.
2. Luego, utiliza la función 'FILTER' para filtrar la tabla "fact2projecthistory" para las filas donde el ID único del proyecto coincide con el proyecto actual (''fact2projecthistory'[Projectuniqueid] = ProjectUniqueID') y donde el estado de verificación no está en blanco ('NOT ISBLANK('fact2projecthistory'[Projectcheckingstatus])').
3. Finalmente, cuenta las filas devueltas por la función 'FILTER' usando 'COUNTROWS', que le da los recuentos totales de verificación para el proyecto.
Después de crear esta columna calculada en la tabla "fact1project", puede usarla en sus imágenes para mostrar los recuentos totales de cheques para cada proyecto. De esta manera, no necesitará tablas resumidas duplicadas, y el cálculo se realizará sobre la marcha en función de las relaciones de su modelo de datos.