almacenar y usar nombres de medidas de una tabla

Un usuario Pregunto ✅

ThomasDay

Hola a todos,

Voy a hacer uso del patrón «master slicer» que he visto en un montón. El truco es que también me gustaría almacenar un nombre de medida en una columna y «analizarlo» para usarlo en un filtro.

La tabla de segmentación maestra tendrá el siguiente formato.

MasterSlicerTable.PNG

Y estaré calculando un percentil para almacenar en una tabla con una fórmula similar a esta con MeasureName proveniente de la columna MeasureName:

25thPercentile = PERCENTILEX.INC (ALLSELECTED ([ProviderNo]), [MeasureName], 0,25)

Hay cientos de nombres de medidas para elegir … y cada uno tendrá un conjunto diferente de valores de filtro.

Necesito ayuda para ahorrar dinero aquí. No estoy seguro de qué hacer para que MeasureName sea dinámico.

¡Gracias por adelantado!
Tomás

Evan_at_DD

Solía ​​haber una medida era hacer esto con MDX. Se llamaba Cadena a miembro.

Aquí está la idea que puede votar por ella: https: //ideas.powerbi.com/forums/265200-power-bi-ideas/suggestions/33095020-programmatic-change -…

Nevada

Hola @ThomasDay, gracias por comunicarte conmigo. Si he entendido bien la pregunta, lo que está tratando de hacer es bastante complejo, por lo que no puedo pensar en una solución clara para resolver esto.

Así es como he entendido esto hasta ahora:

Para simplificar, digamos que tiene 1 página de informe con 3 visualizaciones de tarjetas (percentil 25, percentil 50, percentil 75).
Desea utilizar una cortadora con más de 100 nombres de medidas, de modo que cuando seleccione una medida de la cortadora, las tres tarjetas reflejarán cada percentil calculado con esa medida. P.ej. la selección de FTEsAcuteCare en la cortadora daría como resultado que las tarjetas mostraran cada percentil de FTEsAcuteCare.

Háganos saber si esta interpretación del problema es lo suficientemente cercana y tal vez alguien más podría tener un momento de bombilla e intervenir 🙂

Si esto es exacto, entonces, para uno, la medida debería resultar en un vector de valores, no un valor, porque debe tener un vector de valores para poder calcular un percentil. Supongo que sus medidas están configuradas así, por lo que una solución sería usar la declaración SWICH (como en el enlace de la tabla de parámetros anterior) donde verifica qué valor se ha filtrado de la tabla de medidas y captura la medida seleccionada con un SWITH declaración como:

25thPERCENTILE =
IF (
HASONEVALUE ( Measures[MeasureName] ),
PERCENTILEX.INC(ALLSELECTED([ProviderNo]),
SWITCH (
VALUES ( Measures[MeasureName] ),
"FTEsAcuteCare", [FTEsAcuteCare],
"2ndMeasure", [2ndMeasure],
...
)
, 0.25)
...

Esto no es dinámico ya que las medidas deben estar codificadas en la declaración dax, pero con una buena documentación y un plan de mantenimiento para actualizar las declaraciones dax, este podría ser un enfoque bastante simple.

Por supuesto, podría haber una solución más dinámica para esto, pero avíseme si esto lo acerca más a una solución que se adapte a los requisitos.

ThomasDay

En respuesta a Nevada

Hola a todos, y gracias por ayudar.

  • Sabemos que no podemos cambiar mediante programación una medida de DAX en función de un valor de cadena en una expresión.
  • Por otro lado, filas de 20 mm, calcular 600 medidas para más de 5000 entidades y construir la clasificación de síntesis en este modelo, incluso si pudiera cambiar programáticamente una medida DAX en una expresión, es una etapa ETL realmente buena para un gran conjunto de datos.
  • Estos datos se actualizan trimestralmente … lo que permite un poco de libertad para pensar en las etapas sin tener que invertir mucho mantenimiento / preocupación / tiempo.
  • Una nueva etapa puede encargarse de este problema:
      • Exportación (un poco torpe) desde una visualización de todas las entidades y 600 medidas (no estoy seguro de cuándo aparece la memoria, por lo que puede tomar varios conjuntos de medidas). Con suerte no son demasiados sets … digamos que tengo suerte aquí.

    Transformation.PNGUse SQL para transformar en un archivo largo y delgado como este … hay comandos para hacer esta parte.

    ¡Y voilá! Eso se convierte en la entrada para la siguiente etapa. Es un archivo grande 5000entidades * 600 medidas * no de años, ¡pero ahora cada cálculo está disponible!

    Luego puedo agregar la siguiente capa de valor agregado: calcular los diversos valores de percentiles para los grupos de cohortes de proveedores relevantes (solo use / comparta el archivo del proveedor ETL base para eso), cree una tabla de parámetros para las segmentaciones con las medidas que aparecen en las segmentaciones – con una cortadora de grupo, luego una cortadora de medidas.

    De acuerdo, es pronto para descubrir los próximos pasos, pero este enfoque parece bastante productivo.

    Gracias de nuevo, déjame saber lo que piensas.

    Tomás

    PD: si alguien sabe cómo puedo usar la función «trabajar en excel» en lugar de la exportación de visualización que estoy visualizando … ¡Soy todo oídos!

Greg_Deckler

Por favor, avíseme si esto es lo que está preguntando, si desea poder crear medidas y que su tabla de MeasureNames refleje automáticamente estas nuevas medidas.

ThomasDay

En respuesta a Greg_Deckler

Hola @Greg_Deckler

Hmmm, no creo que eso sea todo. Estoy buscando usar nombres de medidas de una columna en una tabla para crear una ecuación DAX.
Entonces, en mi ejemplo, MeasureName proviene de una columna en una tabla, almacenada como texto y cuando selecciono una fila en esa tabla, me gustaría insertar MeasureName en una ecuación de DAX.

¿Está más claro?

Tomás

Es realmente como poner un nombre de medida en una segmentación para que elijas una medida y los filtros que quieres ver como usuario …

Sean

En respuesta a ThomasDay

¡Esto suena como una tabla de parámetros!

http://www.daxpatterns.com/parameter-table/

ThomasDay

En respuesta a Sean

Sí … sí lo hace. Mi cabeza casi explota a diario con todas las cosas nuevas que imaginar. No puedo agradecerles lo suficiente por señalar la dirección (como siempre). Probaré algunos ejemplos simples para probarlo.

Tomás

ThomasDay

En respuesta a ThomasDay

La inserción de un nombre MEASURE en una expresión DAX permanece sin resolver. La Tabla de parámetros inserta valores en expresiones pero no MEDIDAS de lo que veo.

Déjame ir a lo que estoy tratando de hacer en su lugar.

La idea es tener una lista de MEDIDAS, elegir una (algo así como en la lista de CAMPOS de visualización) y mostrar una página de visualización para esa Medida …

Alternativamente, ¿alguien sabe cómo recorrer una lista de medidas completa o seleccionada y hacer cálculos para cada una escribiendo una fila de cálculos para cada una en una tabla?

Tomás

Greg_Deckler

En respuesta a ThomasDay

Por lo tanto, potencialmente podría resolver esto publicando su informe en el Servicio. Aquí está el pensamiento. Cree una página de informe para cada medida. Ponga los nombres de sus medidas en una tabla. Publicar para servicio. Vaya a cada página de informe y cree una visualización de tarjeta que filtre el nombre de medida para esa página. Anclar al tablero.

En teoría, debería obtener un panel de nombres de medidas. Hacer clic en el nombre de la medida debería llevarlo a la página del informe de donde proviene la visualización.

No es óptimo.

ThomasDay

En respuesta a Greg_Deckler

Es una posibilidad … publicaremos 100 medidas, así que es mucho. Y en cada uno hay quizás 30-50 grupos diferentes de puntos de datos para mostrar … así que es muy «libro de referencia» en ese sentido.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *