Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

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.

Reply
Syndicate_Admin
Administrator
Administrator

Cómo crear una matriz con valores menores o iguales que el valor de columna

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 #programaAñadir fechaFecha de entrega
1contabilidad1/20/2022
2recursos humanos3/15/2022
3contabilidad2/22/20222/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.

VimWan_0-1677253642536.png

Gracias por su tiempo y ayuda con esto.

6 REPLIES 6
Syndicate_Admin
Administrator
Administrator

¿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):

MarkLaf_0-1677532029056.png

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:

MarkLaf_1-1677532469569.png

Syndicate_Admin
Administrator
Administrator

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?

Syndicate_Admin
Administrator
Administrator

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.

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

Find out what's new and trending in the Fabric Community.