Check your eligibility for this 50% exam voucher offer and join us for free live learning sessions to get prepared for Exam DP-700.
Get StartedDon't miss out! 2025 Microsoft Fabric Community Conference, March 31 - April 2, Las Vegas, Nevada. Use code MSCUST for a $150 discount. Prices go up February 11th. Register now.
Estoy tratando de entender por qué una medida que he escrito no funciona y ver si hay algo que pueda hacer para solucionarlo.
Visión general de los datos y las medidas
Estoy tratando con datos de envío y tengo un objeto visual Tabla que tiene un origen, un destino y varias medidas numéricas.
Las medidas numéricas, en su base, son solo SUMs de un campo en los datos, pero también hacen algunos otros trucos:
Requisito
Estoy intentando crear objetos visuales de tarjeta que muestren la SUMA de las 5 filas superiores de esta tabla para las medidas descritas anteriormente.
Mi intento
A modo de ejemplo, utilizo la siguiente medida
Top 5 =
SUMX(
TOPN(
5,
SUMMARIZE(
'Shipments',
'Shipments'[Origin],
'Shipments'[Destination],
"Total Paid", [Total Paid (USD) Sum]),
[Total Paid], DESC),
[Total Paid])
Esta es la otra medida a la que hace referencia:
Total Amount Paid (USD) Sum =
VAR DateSelection = SELECTEDVALUE('Date Slicer Choices'[Date Choice])
VAR TotalPaidInvoiceDate =
CALCULATE(
SUM('Shipments'[TOTAL_PAID_USD]),
USERELATIONSHIP('Date'[DATE], 'Shipments'[INVOICE_DATE]))
VAR TotalPaidProcessedDate =
CALCULATE(
SUM('Shipments'[TOTAL_PAID_USD]),
USERELATIONSHIP('Date'[DATE], ' Shipments'[PROCESSED_DATE]))
VAR TotalPaidShipDate =
CALCULATE(
SUM('Shipments'[TOTAL_PAID_USD]),
USERELATIONSHIP('Date'[DATE], 'Shipments'[SHIP_DATE]))
RETURN
SWITCH(
TRUE(),
DateSelection = "Invoice Date", TotalPaidInvoiceDate,
DateSelection = "Ship Date", TotalPaidShipDate,
DateSelection = "Processed Date", TotalPaidProcessedDate)
Esta medida permite al usuario controlar cuál de las tres opciones de fecha. La medida se comporta según lo esperado cuando se usa en un objeto visual como el objeto visual Tabla.
En el modelo de datos, la tabla Fecha tiene tres relaciones con la tabla Envío. La Fecha[DATE] se une a Envío[INVOICE_DATE], Envío[SHIP_DATE] (la unión activa) y Envío[PROCESSED_DATE].
Mi problema
La medida Top 5 funciona a la perfección cuando la selección de fecha es la que establece la relación activa entre la tabla de fechas y la tabla de envíos.
Cuando selecciono cualquiera de los otros tipos de fecha que utilizan las relaciones inactivas, devuelve (en blanco). Estoy bastante confundido en cuanto a por qué, ya que las medidas subordinadas (las que calculan el Total Pagado haciendo el cambio de fecha), ambas funcionan como se espera en el objeto visual de la tabla.
Por lo tanto, parece que hay algún tipo de problema al pasar esta segunda medida a la primera que no estoy entendiendo.
Hola @VoijaRisa
Basándome en su descripción detallada, he agregado algunos pasos a las acciones que ya ha realizado, y en mis pruebas simples está funcionando. Espero que los siguientes pasos te sean útiles.
Este es mi modelo de datos:
1. Cree la medida "Suma total pagada (USD)" de la misma manera que la utilizó.
2. Cree medidas separadas para calcular Top5 para diferentes selecciones de fechas.
Top 5 Ship Date =
SUMX(
TOPN(
5,
ADDCOLUMNS(
SUMMARIZE(
'Shipments',
'Shipments'[Origin],
'Shipments'[Destination]
),
"Total Paid USD", [Total Amount Paid (USD) Sum]
),
[Total Paid USD], DESC
),
[Total Paid USD]
)
Top 5 Invoice Date =
CALCULATE(
SUMX(
TOPN(
5,
ADDCOLUMNS(
SUMMARIZE(
'Shipments',
'Shipments'[Origin],
'Shipments'[Destination]
),
"Total Paid USD", [Total Amount Paid (USD) Sum]
),
[Total Paid USD], DESC
),
[Total Paid USD]
),
USERELATIONSHIP('Date'[DATE], 'Shipments'[INVOICE_DATE])
)
Top 5 Processed Date =
CALCULATE(
SUMX(
TOPN(
5,
ADDCOLUMNS(
SUMMARIZE(
'Shipments',
'Shipments'[Origin],
'Shipments'[Destination]
),
"Total Paid USD", [Total Amount Paid (USD) Sum]
),
[Total Paid USD], DESC
),
[Total Paid USD]
),
USERELATIONSHIP('Date'[DATE], 'Shipments'[PROCESSED_DATE])
)
3. Combine las 5 medidas principales creadas anteriormente en una sola medida.
Top 5 =
VAR DateSelection = SELECTEDVALUE('Date Slicer Choices'[Date Choice])
RETURN
SWITCH(
TRUE(),
DateSelection = "Invoice Date", [Top 5 Invoice Date],
DateSelection = "Processed Date", [Top 5 Processed Date],
DateSelection = "Ship Date", [Top 5 Ship Date]
)
4. Cree una imagen de tarjeta con la medida Top 5.
5. Este es el resultado final:
Saludos
Jarvis Tang
Si esta publicación Ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Hola
No estoy seguro de cuánto puedo ayudar, pero me gustaría intentarlo. Comparta el enlace de descarga del archivo PBI.
March 31 - April 2, 2025, in Las Vegas, Nevada. Use code MSCUST for a $150 discount!
Check out the January 2025 Power BI update to learn about new features in Reporting, Modeling, and Data Connectivity.