Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Espero que la línea de asunto tenga sentido. Soy muy nuevo en DAX. Tengo un filtro para la unidad de descarga y quiero mostrar las unidades de descarga seleccionadas en la parte superior de mi página. Eso fue creado por otra persona y se ve así:
Hay alrededor de tres docenas de unidades, así que actualmente tenemos el informe configurado para maximizar las unidades mostradas en 10, que se ve así:
Por lo tanto, si un usuario selecciona de una a diez unidades se mostrarán todas ellas y si seleccionan más de 10, las 10 principales se mostrarán junto con "etc.". Lo que quiero es añadir a la medida para que cuando se seleccionan todas las unidades, dice "Departamento(s) de descarga: Todos" en la parte superior.
No estoy seguro de cómo agregar la sintaxis para devolver "All" cuando se alcanza ese máximo. Aquí está el DAX actual:
SelectedDischargeDepartment = "Discharge Department(s): " &
VAR __DISTINCT_VALUES_COUNT = DISTINCTCOUNT('PI Hospital Template - 7199'[DischargeUnit])
VAR __MAX_VALUES_TO_SHOW = 10
RETURN
IF(
__DISTINCT_VALUES_COUNT > __MAX_VALUES_TO_SHOW,
CONCATENATE(
CONCATENATEX(
TOPN(
__MAX_VALUES_TO_SHOW,
VALUES('PI Hospital Template - 7199'[DischargeUnit]),
'PI Hospital Template - 7199'[DischargeUnit],
ASC
),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit],
ASC
),
", etc."
),
CONCATENATEX(
VALUES('PI Hospital Template - 7199'[DischargeUnit]),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit],
ASC
)
)
Creo que lo siguiente debería funcionar para obtener un recuento máximo de la DescargaUnit:
VAR __MAX_COUNT = MAXX(DISTINCTCOUNT('PI Hospital Template - 7199'[DischargeUnit])
pero no estoy seguro de adónde ir desde aquí para devolver "Todos" si DISTINCT_VALUES_COUNT MAX_COUNT.
Cualquier ayuda sería muy apreciada!
Solved! Go to Solution.
ALL( ) con una columna devuelve todos los valores únicos de una columna. Eso debería estar bien. Debe haber algo en el modelo que no veo.
La cortadora está con 'PI Hospital Template - 7199'[DischargeUnit], ¿correcto?
Prueba esto. Cree esta medida de depuración y palcela en un objeto visual de la tarjeta.
Measure1 =
COUNTROWS ( ALL ( 'PI Hospital Template - 7199'[DischargeUnit] ) )
¿Es el resultado el número de DescargUnits ?
Entonces lo mismo para
Measure2 =
DISTINCTCOUNT( 'PI Hospital Template - 7199'[DischargeUnit] )
¿Es el resultado el número de elementos seleccionados en la segmentación de datos?
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Hola, @cathoms
Si está utilizando una tarjeta visual para mostrar su medida, es posible que no obtenga el "_distinct_values_count" correcto en su tarjeta.
VAR __DISTINCT_VALUES_COUNT =
DISTINCTCOUNT ( 'PI Hospital Template - 7199'[DischargeUnit] )
Creo que necesita diferenciar una tabla de resumen virtual filtrada para obtener el valor de variable de __DISTINCT_VALUES_COUNT.
Puede comprobar @amitchanda solución en este subproceso.
https://community.powerbi.com/t5/Desktop/Card-Visual-Measure-with-Distinct-Count/m-p/1405570
Saludos
Equipo de soporte de la comunidad _ Eason
ALL( ) con una columna devuelve todos los valores únicos de una columna. Eso debería estar bien. Debe haber algo en el modelo que no veo.
La cortadora está con 'PI Hospital Template - 7199'[DischargeUnit], ¿correcto?
Prueba esto. Cree esta medida de depuración y palcela en un objeto visual de la tarjeta.
Measure1 =
COUNTROWS ( ALL ( 'PI Hospital Template - 7199'[DischargeUnit] ) )
¿Es el resultado el número de DescargUnits ?
Entonces lo mismo para
Measure2 =
DISTINCTCOUNT( 'PI Hospital Template - 7199'[DischargeUnit] )
¿Es el resultado el número de elementos seleccionados en la segmentación de datos?
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Sí a ambas preguntas re: las medidas de depuración. Cuando configuro una página que contiene las tarjetas con las medidas anteriores, y agredo los Departamentos de Descarga: etiqueta/medida funciona como debería. Después de publicar y actualizar No funciona en la página en la que lo quiero, sin embargo. Me pregunto si la medida se ve afectada por otros filtros en la página. Creo que necesito ponerme en contacto con el generador de informes que creó esto en primer lugar.
Con el cambio, las definiciones para __DISTINCT_VALUES_COUNT y __MAX_COUNT son exactamente las mismas por lo que, por supuesto, _DISTINCT_VALUES_COUNT __MAX_COUNT siempre y el código devuelve "Todos"
Mi versión debería funcionar. ¿Qué es lo que no es exactamente?
¿Puedes compartir el pbix para que pueda echar un vistazo?
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
Lo siento, no puedo compartir debido a información de salud privada. En cuanto a lo que no funciona, todavía muestra diez unidades de descarga y "etc." cuando todos están seleccionados o cuando no hay selección en la cortadora/filtro de la unidad de descarga, en lugar de "Todos". Básicamente, no hay ningún cambio en el comportamiento.
Mi preocupación con su versión de la variable es que creo que está contando todas las 130.000 filas en la tabla en lugar de contar el número distinto de unidades de descarga. Como dije, archivo sin formato, no un esquema de estrella, por lo que la tabla de referencia es todo el conjunto de datos. ¡No es mi elección!
Te agradezco que trabajes en esto.
Hola @cathoms
Prueba esto. Tenga en cuenta que tratará el caso de ninguna selección en la segmentación de datos como si se seleccionara todos. Que sthe ususal comportamiento. Si desea un comportamiento diferente se puede hacer utilizando ISFILTERED( )
SelectedDischargeDepartment =
"Discharge Department(s): "
&
VAR __DISTINCT_VALUES_COUNT =
DISTINCTCOUNT ( 'PI Hospital Template - 7199'[DischargeUnit] )
VAR __MAX_COUNT =
COUNTROWS ( ALL ( 'PI Hospital Template - 7199'[DischargeUnit] ) )
VAR __MAX_VALUES_TO_SHOW = 10
RETURN
IF (
__DISTINCT_VALUES_COUNT = __MAX_COUNT,
"All",
IF (
__DISTINCT_VALUES_COUNT > __MAX_VALUES_TO_SHOW,
CONCATENATE (
CONCATENATEX (
TOPN (
__MAX_VALUES_TO_SHOW,
VALUES ( 'PI Hospital Template - 7199'[DischargeUnit] ),
'PI Hospital Template - 7199'[DischargeUnit], ASC
),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit], ASC
),
", etc."
),
CONCATENATEX (
VALUES ( 'PI Hospital Template - 7199'[DischargeUnit] ),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit], ASC
)
)
)
Por favor, marque la pregunta resuelta cuando haya terminado y considere dar un pulgar hacia arriba si las publicaciones son útiles.
Póngase en contacto conmigo de forma privada para obtener asistencia con cualquier necesidad de BI a gran escala, tutoría, etc.
Salud
¡Ah, sí! Declaraciones IF anidadas... ¡Claro! Es curioso cómo las cosas se vuelven obvias en retrospectiva. Sin embargo, todavía no funciona.
La variable MAX_COUNT de AIB no hizo el truco,
VAR __MAX_COUNT =
COUNTROWS ( ALL ( 'PI Hospital Template - 7199'[DischargeUnit] ) )
así que lo reemplaqué con
VAR __MAX_COUNT =
DISTINCTCOUNT ( 'PI Hospital Template - 7199'[DischargeUnit] )
Esto es probablemente porque la tabla es el conjunto de datos en lugar de una tabla de búsqueda. Estamos usando un enorme archivo plano en lugar de configurar un esquema de estrella para este informe... No me hagas empezar. ¡No es mi decisión! 😖
Cualquiera que, todo se ve así:
SelectedDischargeDepartment =
"Discharge Department(s): "
&
VAR __DISTINCT_VALUES_COUNT =
DISTINCTCOUNT ( 'PI Hospital Template - 7199'[DischargeUnit] )
VAR __MAX_COUNT =
DISTINCTCOUNT ( 'PI Hospital Template - 7199'[DischargeUnit] )
VAR __MAX_VALUES_TO_SHOW = 10
RETURN
IF (
__DISTINCT_VALUES_COUNT = __MAX_COUNT,
"All",
IF (
__DISTINCT_VALUES_COUNT > __MAX_VALUES_TO_SHOW,
CONCATENATE (
CONCATENATEX (
TOPN (
__MAX_VALUES_TO_SHOW,
VALUES ( 'PI Hospital Template - 7199'[DischargeUnit] ),
'PI Hospital Template - 7199'[DischargeUnit], ASC
),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit], ASC
),
", etc."
),
CONCATENATEX (
VALUES ( 'PI Hospital Template - 7199'[DischargeUnit] ),
'PI Hospital Template - 7199'[DischargeUnit],
"; ",
'PI Hospital Template - 7199'[DischargeUnit], ASC
)
)
)
Desafortunadamente, ahora dice "Departamento(s) de Descarga: Todos" independientemente de cuál o cuántas unidades de descarga se seleccionen en el filtro...