Calcule la puntuación Z con una sola columna de datos que tiene varias métricas

Un usuario Pregunto ✅

wsspglobal

Hola,

Tengo una tabla que tiene una columna de Nombre de métrica que consta de varias métricas y una columna de Valor de métrica. Quiero calcular el puntaje z para los datos dentro de cada una de las métricas AAA, BBB y CCC. Como en realidad tengo cientos de métricas con las que lidiar en realidad, me pregunto si puedo calcular el puntaje z en una sola columna y luego usar un filtro para ver una sola métrica cuando construí el tablero. ¿O hay una mejor manera de hacerlo en Power BI? Supongo que también podría girar la tabla para obtener tres columnas separadas para AAA, BBB y CCC, pero luego tendré que escribir la misma fórmula tres veces, demasiado tedioso. ¿Algún consejo? Gracias.

Nombre de la métrica Valor métrico
AAA 1.52
AAA 1.90
AAA 0.98
AAA 1,95
AAA 9.38
AAA 1.68
AAA 4.98
AAA 8.33
AAA 3.29
AAA 9.98
BBB 9.71
BBB 6.52
BBB 9.60
BBB 8.17
BBB 9.89
BBB 4.62
BBB 6.77
BBB 1.38
BBB 5.31
BBB 5.57
CCC 8.75
CCC 2.17
CCC 4.00
CCC 2.74
CCC 9.25
CCC 2.71
CCC 6.99
CCC 9.60
CCC 0.89
CCC 6.94

sturlaws

Hola, @wsspglobal,

sí tu puedes:

z score = 
var _metric = CALCULATE(SELECTEDVALUE('Table'[Metric Name]))
var _sampleMean = CALCULATE(AVERAGE('Table'[Metric Value]);FILTER(ALL('Table');'Table'[Metric Name]=_metric))
var _sampleSD = CALCULATE(STDEV.S('Table'[Metric Value]);FILTER(ALL('Table');'Table'[Metric Name]=_metric))
return
DIVIDE('Table'[Metric Value]-_sampleMean;_sampleSD)

Salud,
Sturla

Hola @wsspglobal,

Puede crear columnas o medidas como DAX a continuación.

Column1= CALCULATE(SUM(Table1[Metric Value]),FILTER(ALLSELECTED(Table1), Table1[Metric Name] =EARLIER(Table1[Metric Name])))
 
Measure1= CALCULATE(SUM(Table1[Metric Value]),FILTER(ALLSELECTED(Table1),Table1[Metric Name]=MAX(Table1[Metric Name])))

Atentamente,

amy

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución. para ayudar a los otros miembros a encontrarlo más rápidamente.

sturlaws

Hola, @wsspglobal,

sí tu puedes:

z score = 
var _metric = CALCULATE(SELECTEDVALUE('Table'[Metric Name]))
var _sampleMean = CALCULATE(AVERAGE('Table'[Metric Value]);FILTER(ALL('Table');'Table'[Metric Name]=_metric))
var _sampleSD = CALCULATE(STDEV.S('Table'[Metric Value]);FILTER(ALL('Table');'Table'[Metric Name]=_metric))
return
DIVIDE('Table'[Metric Value]-_sampleMean;_sampleSD)

Salud,
Sturla

wsspglobal

En respuesta a sturlaws

Hola @sturlaws

No puedo escribir la última parte:

DIVIDE('Table'[Metric Value]-_sampleMean;_sampleSD)

Parece que no puedo llamar a una columna dentro de DIVIDE. Cuando traté de llamar a ‘Tabla'[Metric Value], No puedo. Por favor avise. ¡Gracias!

sturlaws

En respuesta a wsspglobal

Lo siento, olvidé mencionar que este sería el código para una columna calculada. ¿Estás tratando de hacerlo como una medida?

wsspglobal

En respuesta a sturlaws

Hola @sturlaws,

Sí, lo estaba. ¿Cómo puedo hacerlo en una medida?

sturlaws

En respuesta a wsspglobal

z score measure =
VAR _metric =
    CALCULATE ( SELECTEDVALUE ( 'Table'[Metric Name] ) )
VAR _sampleMean =
    CALCULATE (
        AVERAGE ( 'Table'[Metric Value] );
        FILTER ( ALL ( 'Table' ); 'Table'[Metric Name] = _metric )
    )
VAR _sampleSD =
    CALCULATE (
        STDEV.S ( 'Table'[Metric Value] );
        FILTER ( ALL ( 'Table' ); 'Table'[Metric Name] = _metric )
    )
RETURN
    DIVIDE (
        SUMX ( VALUES ( 'Table'[Metric Value] ); SUM ( 'Table'[Metric Value] ) ) - _sampleMean;
        _sampleSD
    )

Deja un comentario

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