Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.
Hola a todos,
Soy bastante novato con Power Bi y tengo problemas para encontrar una manera eficiente de completar lo siguiente:
Tengo 2 tablas, una que contiene datos de inscripción de estudiantes y una tabla que he creado que contiene las fechas de informe del informe que quiero rellenar. He creado un ejemplo a continuación:
Datos de matrícula de estudiantes:
stdnt # | programa | Añadir fecha | Fecha de entrega |
1 | contabilidad | 1/20/2022 | |
2 | recursos humanos | 3/15/2022 | |
3 | contabilidad | 2/22/2022 | 2/25/2022 |
Fechas del informe:
Fechas de los informes |
1/25/2022 |
3/16/2022 |
4/25/2022 |
Lo que quiero en Power Bi es que mi tabla se parezca a los datos adjuntos siguientes, donde las fechas de informe son los encabezados de columna y los recuentos de todos los registros de inscripción para cada programa que tienen una fecha de adición menor o igual que la fecha de informe para cada programa se enumeran en el cuerpo de la tabla donde irían los valores.
Gracias por su tiempo y ayuda con esto.
¿Desea un recuento YTD de la inscripción en las fechas de informe especificadas? En caso afirmativo, puede lograrlo configurando una tabla de fechas y una medida YTD. Incluso si el siguiente cálculo YTD no es exactamente lo que desea, sospecho que el enfoque general aún puede funcionar para usted, incluso si tiene que modificar la medida en # 3 para obtener exactamente lo que desea.
Detalles. Tablas dadas nombran 'StudentEnrollment' y 'ReportDates' para sus datos proporcionados:
1) Crear tabla de fechas. Hay muchos métodos robustos, pero aquí hay algunos DAX muy rápidos solo para que la imagen funcione:
Dates =
VAR minDt = DATE( YEAR( MIN( MIN( ReportDates[report dates] ), MIN( StudentEnrollment[add date] ) ) ), 1, 1 )
VAR maxDt = DATE( YEAR( MAX( MAX( ReportDates[report dates] ), MAX( StudentEnrollment[add date] ) ) ), 12, 31 )
RETURN
CALENDAR( minDt, maxDt )
2) Configure relaciones entre sus dos tablas y Fechas ( StudentEnrollment <--M:1-- Dates --1:M--> ReportDates):
3) Cree la medida que desea para contar la inscripción:
EnrollmentCount =
CALCULATE(
COUNTROWS( StudentEnrollment ),
CALCULATETABLE( DATESYTD( Dates[Date] ), ReportDates )
)
4) Construye el visual que quieras: a partir de tu captura de pantalla, parece que quieres una matriz:
En este momento, a partir de su sugerencia, estoy pensando que puedo unir todas las filas de ambas tablas y luego eliminar cualquier fila donde la fecha de adición > la fecha de informe después de la unión. Dado que esto parece ineficiente, ¿alguna sugerencia para mejorar esto?
Eso parece una unión cruzada directa. ¿Qué has probado y dónde estás atascado?
Gracias Ibendin,
Entiendo que una combinación cruzada mezcla todas las filas de ambas tablas, ¿hay alguna manera de especificar que queremos combinar registros específicos de los datos de inscripción de estudiantes a cada registro de fecha consecutiva donde la fecha de adición del registro de la tabla de inscripción de estudiantes debe ser menor o igual que la fecha de informe?
En este momento, a partir de su sugerencia, estoy pensando que puedo unir todas las filas de ambas tablas y luego eliminar cualquier fila donde la fecha de adición > la fecha de informe después de la unión. Dado que esto parece ineficiente, ¿alguna sugerencia para mejorar esto?
Otro punto que quería hacer es que si mi tabla de inscripción de estudiantes es una tabla con un gran número de filas, ¿el uso de una unión cruzada no podría causar problemas de rendimiento?
Since this seems inefficient
Todos los motores de bases de datos están optimizados para manejar productos cartesianos. Tienen que hacer eso de todos modos, para cada unión. Usted puede ayudar reduciendo la cardinalidad pronto en el proceso.
Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City
Check out the April 2024 Power BI update to learn about new features.
User | Count |
---|---|
2 | |
1 | |
1 | |
1 | |
1 |
User | Count |
---|---|
2 | |
2 | |
2 | |
1 | |
1 |