Earn a 50% discount on the DP-600 certification exam by completing the Fabric 30 Days to Learn It challenge.
Hola
¡Esta es mi primera publicación en este foro!
Estoy construyendo una aplicación powerBI para mostrar nuestros datos al público (aún no se ha publicado, pero espero que pronto). La aplicación tiene varias páginas. Cada página muestra elementos visuales utilizando un conjunto de datos diferente. Cada conjunto de datos tiene algunas columnas en común (sexo y agrupación). Las columnas comunes son tablas de segmentación de datos (básicamente distint(table[sex]) por ejemplo), con relaciones dibujadas en cada una de las tablas de datos principales (todas de 1 a muchas relaciones). Las variables comunes se vinculan a través de 'tablas de segmentación de datos' (por ejemplo, slicer_sex tabla con 1,2 y una columna de etiqueta; macho/hembra) de modo que cuando los usuarios vayan de una página a otra las selecciones principales permanecerán (es decir, sincronizadas).
OBJETIVO
gráfico de barras visual con grupos de edad en el eje x y un valor en el eje y, según sexo (=leyenda).
Solía tener una medida, muy simple:
DX_value1 = suma(datatable1[valor])
y cambié esto a:
DX_value2 = if(SELECTEDVALUE(slicer_grouping_table[agrupación]) = "Todos los grupos",
calculate(sum(datatable1[value]), all(slicer_grouping_table[agrupación])),
sum(datatable1[valor]))
Luego hago un gráfico de barras de grupo de edad (eje X) vs 'DX_value'. Tengo una leyenda por sexo (hombre/mujer).
EMITIR
Desde entonces he cambiado DX_value1 a DX_value2, mi visual funciona cuando selecciono algo que no sea 'Todos los grupos', pero muestra un objeto visual vacío (sin error) cuando selecciono 'Todos los grupos'. Eliminar la leyenda sexual hace que funcione, lo que me lleva a creer que hay un choque con la mesa de rebanadora de sexo. De hecho, cuando incluyo el sexo como una leyenda, pero usando datatable1[sexo] en lugar slicer_sex_table[sexo] la visual funciona por completo. No entiendo qué podría estar mal con mi mesa de rebanadora sexual para obtener este comportamiento.
Algunos puntos adicionales para describir por qué está configurado de esta manera:
¡Cualquier ayuda muy apreciada!
Luc
@LucMarv ,
Según su descripción, parece que la relación entre los esquemas de tabla está afectando a los resultados del filtrado. Pruebe la fórmula como la siguiente:
DX_value2 =
IF (
SELECTEDVALUE ( slicer_grouping_table[grouping] ) = "All groups",
CALCULATE (
SUM ( datatable1[value] ),
ALLEXCEPT ( datatable1, table[grouping], table[SEX] )
),
SUM ( datatable1[value] )
)
Si el problema persiste, ¿puede proporcionar información sobre las capturas de pantalla del modelo de datos, los datos de prueba, etc.? Esto hará que sea más fácil para mí entenderlo, para que pueda responderte lo antes posible. Esperamos su respuesta.
Saludos
Henrio
Si esta publicación ayuda,entonces considere Aceptarla como la solución para ayudar a los otros miembros a encontrarla más rápidamente.
¡Muchas gracias por su respuesta! Muy apreciado.
Usted propuso que la solución no tuvo éxito, pero aprecio que no le di suficientes detalles para que pueda acceder a todo correctamente. Así que aquí algunas capturas de pantalla de la aplicación real, el modelo de datos, etc.:
Este es el modelo de datos:
Este es el front-end (bueno, eliminé la mayoría y agregué algunas tablas para verificar lo que está haciendo el modelo):
El gráfico inferior izquierdo es lo que estoy tratando de arreglar. Al hacer clic en este gráfico se muestra:
La medida en el campo de valores dice (poner esto en HTML dio un error):
MeasureSelected_DX_ByAge =
SWITCH(TRUE(),
VALORES(MeasureDimensions_dx_trend[Medida]) = "Cuenta", [DX_trend_measure_COUNTS],
VALORES(MeasureDimensions_dx_trend[Medida]) = "Tasas", [Dx_trend_measure_CrudeRate],
EN BLANCO())
La medida en la que se selecciona 'Tarifas' se define como:
Dx_trend_measure_CrudeRate =
si(
SELECTEDVALUE(
TumorGrouping[Grouping_Lvl1]) = "Todos los tumores malignos",
calcular(
(sum(T1_Inc_Mort_Main[Diagnósticos])/ sum(PopulationVIC[pop]))*100000,
ALLEXCEPT(T1_Inc_Mort_Main, slicer_SEX[sexo], slicer_AGEG[ageg], slicer_YEAR[año])
),
(sum(T1_Inc_Mort_Main[Diagnósticos])/ sum(PopulationVIC[pop]))*100000
)
Solo para volver a itterar, no hay datos en T1_inc_Mort_main con Grouping_Lvl1] = "Todos los tumores malignos" (no estoy seguro de si eso importa, pero solo re-itteración, por si acaso).
Hágame saber si tiene otras preguntas o necesita más información.
Más que feliz de compartir pantalla, que probablemente sea mucho más fácil.
Saludos
Luc