Get certified in Microsoft Fabric—for free! For a limited time, the Microsoft Fabric Community team will be offering free DP-600 exam vouchers. Prepare now
Hola
Supuestamente un problema muy simple.
"Tabla 1":
...
"TimeTable" (los datos completos son 08:00:00 - 16:30:00):
...
"DateTable" (2020-07-01 - Hoy):
....
Relaciones:
Tengo una segmentación de datos (DateTable[Date]) en mi página de informe y tengo una visualización para mi [LastUpdateTime] (con eje x "Time_only" y eje y Measure1 = CALCULATE(COUNTROWS('Table1'), GROUPBY('Table1','Table1'[LastUpdateTime])) )
Hasta ahora todo bien, el resultado es el esperado (suma del recuento de filas por ventana de tiempo de 1 minuto para el rango de fechas definido por la segmentación de datos de fecha).
AHORA, me gustaría tener la misma visualización en mi página de informe pero para [IssueTime].
Para ello he intentado utilizar la siguiente medida:
Measure2 = CALCULATE(COUNTROWS('Table1'), USERELATIONSHIP(DayTable[Time_only],'Table1'[IssueTime]), GROUPBY('Table1','Table1'[IssueTime]))
PERO el resultado no es el esperado (no muestra ningún recuento o solo muy pocos al extender significativamente el rango de fechas a través de Date Slicer).
Cuando quito la segmentación de datos de fecha, se ve un poco correcta.
Por lo tanto, asumiría que la función USERELATIONSHIP() cancela la relación existente con la "DateTable"?
He intentado modificar la medida así:
CALCULATE(COUNTROWS('Table1'), USERELATIONSHIP(DayTable[Time_only],'Table1'[IssueTime]), USERELATIONSHIP(Date[Date],'Table1'[IssueDate_only]), GROUPBY('Table1','Table1'[IssueTime]))
o así:
CALCULAR(CALCULAR(COUNTROWS('Tabla 1'), USERELATIONSHIP(DayTable[Time_only],'Table1'[IssueTime]), GROUPBY('Tabla1','Tabla1'[IssueTime])), USERELATIONSHIP('Tabla1'[IssueDate_only],'Fecha'[Fecha]))
pero fue en vano. 😞
¿Qué me falta y cómo puedo resolver este problema?
¡Gracias!
Solved! Go to Solution.
Encontré la solución, la función USERELATIONSHIP tiene que estar envuelta en otro CALCULATE como este Measure2 = CALCULATE(CALCULATE(...)), USERELATIONSHIP(..))). Extraño porque también claramente tuvo un efecto al usarlo dentro de un solo CALCULATE con las otras funciones. Mi falta de conocimiento de DAX me impide entender adecuadamente lo que está sucediendo, pero afortunadamente funciona ahora.
Encontré la solución, la función USERELATIONSHIP tiene que estar envuelta en otro CALCULATE como este Measure2 = CALCULATE(CALCULATE(...)), USERELATIONSHIP(..))). Extraño porque también claramente tuvo un efecto al usarlo dentro de un solo CALCULATE con las otras funciones. Mi falta de conocimiento de DAX me impide entender adecuadamente lo que está sucediendo, pero afortunadamente funciona ahora.
Suena como una respuesta de ChatGPT y me parece bastante inútil
Parece que está trabajando con Power BI o una herramienta de visualización de datos similar e intentando crear una visualización de distribución de tiempo para LastUpdateTime y IssueTime desde 'Tabla1' con una segmentación de datos de datos. El problema que está encontrando puede estar relacionado con la forma en que ha configurado sus medidas y relaciones.
Aquí hay una posible solución:
Crear una tabla de calendario (DateTable): asegúrese de tener una tabla de calendario que cubra todo el intervalo de fechas que desea analizar. Esta tabla debe tener una columna para las fechas, y debe establecer una relación entre esta tabla y su 'Tabla1' utilizando la columna de fecha.
Crear medidas: cree dos medidas, una para LastUpdateTime y otra para IssueTime. Estas medidas calcularán el recuento de filas en la 'Tabla 1' para cada ventana de tiempo.
LastUpdateTimeMeasure =
VAR SelectedDate = MAX(DateTable[Date])
DEVOLUCIÓN
CALCULAR(
COUNTROWS('Tabla 1'),
FILTER('Table1', 'Table1'[LastUpdateTime] >= SelectedDate && 'Table1'[LastUpdateTime] < SelectedDate + TIME(0, 1, 0))
)
IssueTimeMeasure =
VAR SelectedDate = MAX(DateTable[Date])
DEVOLUCIÓN
CALCULAR(
COUNTROWS('Tabla 1'),
FILTER('Table1', 'Table1'[IssueTime] >= SelectedDate && 'Table1'[IssueTime] < SelectedDate + TIME(0, 1, 0))
)
Estas medidas calculan el recuento de filas en 'Tabla 1' para la fecha seleccionada y una ventana de tiempo de 1 minuto.
Usar medidas en visualizaciones: Ahora, puede usar estas medidas en sus visualizaciones. Para el eje x, use la columna Time_only de su 'DateTable', y para el eje y, use las medidas que creó (LastUpdateTimeMeasure y IssueTimeMeasure).
Aplicar segmentación de datos de fecha: aplique la segmentación de datos de fecha a la página del informe. Asegúrese de que la segmentación de datos filtra tanto la 'DateTable' como la 'Table1' para que coincidan con el intervalo de fechas seleccionado.
Este enfoque debería permitirle crear la visualización de distribución de tiempo para LastUpdateTime y IssueTime mientras se sigue utilizando la segmentación de datos de fecha para controlar el intervalo de fechas. Asegúrese de que la segmentación de datos de fecha esté configurada para afectar tanto a la tabla del calendario como a la tabla 'Tabla1' para que el filtrado de relaciones funcione como se esperaba.
Si esta publicación ayuda, considere aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
Check out the October 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.