Forum Discussion
Modelo de datos incorrecto
Estoy desconcertado con mi modelo de datos incorrecto y cualquier ayuda es realmente apreciada. En la captura de pantalla a continuación, PBI_XZ_Case_Time_Session es mi tabla de hechos y PBI_XZ_Case_Fiserv es mi tabla de dimensiones cuyo User_ID tiene una relación 1: * con UserID en la tabla de hechos. Tanto User_ID como UserID son enteros de números enteros.
A continuación se muestra mi objeto visual de tabla de destino con todas las columnas de la tabla de hechos. Todo está bien hasta ahora.
Mi objetivo es agregar Assignee en la tabla dimentional. Para mostrar el problema aquí, se agrega UserID en la tabla dimentional. Como puede ver a continuación, una tabla de filas de hecho coincide con todas las filas de la tabla dimentional. Parece que mi modelo de datos no funciona en absoluto.
Traté de seguir los pasos de solución de problemas mencionados aquí: https://learn.microsoft.com/en-us/power-bi/guidance/relationships-troubleshoot, pero no vi ningún problema obvio. ¿Alguna sugerencia para solucionar problemas?
Gracias.
8 Replies
- Syndicate_Admin
Administrator
En realidad, "Horas de sesión" es una medida como se muestra a continuación.
Horas de sesión =DÓNDE __HOURS = SUMA( 'PBI_XZ_Case_Time_Session'[Segundos de sesión] ) / 3600DEVOLUCIÓN SI(__HOURS >0, __HOURS, 0)Por razones desconocidas, su instrucción IF es la causa raíz. El problema se soluciona con la siguiente medida.Horas de sesión = SUMA( 'PBI_XZ_Case_Time_Session'[Segundos de sesión] ) / 3600Todavía necesito una medida con la instrucción IF para trazar correctamente las horas de sesión. Por ejemplo, a continuación se muestran las capturas de pantalla con las horas de sesión correctas con la instrucción IF a la izquierda y las horas de sesión incorrectas sin la instrucción IF a la derecha. Seguramente puedo definir la 2ª Hora de Sesión con la declaración IF. Pero me gustaría saber por qué la declaración IF causa el problema aquí y la mejor manera de manejar mi caso.Gracias.
- Syndicate_Admin
Administrator
¿Puedes probar esto?
Session Hours = VAR __HOURS = SUM( 'PBI_XZ_Case_Time_Session'[Session Seconds] ) / 3600 RETURN IF(ISBLANK(__HOURS) || __HOURS <= 0, 0, __HOURS)o
Session Hours = RETURN IF( DIVIDE( SUM( 'PBI_XZ_Case_Time_Session'[Session Seconds] ), 3600, 0) > 0 , DIVIDE( SUM( 'PBI_XZ_Case_Time_Session'[Session Seconds] ), 3600, 0) , 0 ) - Syndicate_Admin
Administrator
Probé ambos pero ninguno funcionó. Como dije, la causa raíz es la declaración IF. También probé la declaración SWITCH y descubrí que tiene el mismo problema.
- Syndicate_Admin
Administrator
Hola
¿Funciona esta medida?
=SUMX(Calendario,[Horas de sesión])
- Syndicate_Admin
Administrator
Sí, la siguiente medida con la función SUMX funciona tanto en la tabla visual como en el gráfico de área visual:
Horas de sesión = SUMX('PBI_XZ_Case_Time_Session',[Segundos de sesión]) / 3600Muchas gracias.
- Syndicate_Admin
Administrator
Supongo que tendremos que usar SUMX en lugar de SUM.
Que es publicado por otro usuario a continuación.
- Syndicate_Admin
Administrator
De nada.
- Syndicate_Admin
Administrator
Lo siento, cometí un error al decir que la función SUMX funcionó. No quiero causar ninguna confusión aquí. La función SUMX tiene el mismo problema con la función SUMA. Mi solución es definir 2 medidas diferentes con y sin función IF y usarlas en consecuencia.