AYUDA, fórmula Dax para la racha actual

Un usuario Pregunto ✅

Anónimo

Estoy trabajando a través de una fórmula que pretende mostrar la racha actual de un hospital determinado que está por debajo del 75% en los puntajes de satisfacción. Tengo una fórmula precisa para la racha MÁS LARGA, pero no puedo averiguar cómo hacer que sea la racha actual.

Dat a es 1 fila por hospital y período fiscal en las columnas del más antiguo al más nuevo.

Período consecutivo por debajo del 75% =
CAMBIAR (
CIERTO (),
‘Racha OSAT (2)'[Under 75%] = 1, 0,
CALCULAR (
COUNTROWS (‘Racha OSAT (2)’),
FILTRO (
TODOS (‘Racha OSAT (2)’),
‘Racha OSAT (2)'[Under 75%] = 1
&& ‘Racha OSAT (2)'[Hosp Num] = ANTES (‘Racha OSAT (2)'[Hosp Num] )
&& ‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] > ANTES (‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] )
)
)
= 0, CALCULAR (
SUM (‘Racha OSAT (2)'[Under 75%] ),
FILTRO (
TODOS (‘Racha OSAT (2)’),
‘Racha OSAT (2)'[Hosp Num] = ANTES (‘Racha OSAT (2)'[Hosp Num] )
&& ‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] > = ANTES (‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] )
)
),
CALCULAR (
SUM (‘Racha OSAT (2)'[Under 75%] ),
FILTRO (
TODOS (‘Racha OSAT (2)’),
‘Racha OSAT (2)'[Hosp Num] = ANTES (‘Racha OSAT (2)'[Hosp Num] )
&& ‘Racha OSAT (2)'[Mars Fiscal Mth End Dt]
> CALCULAR (
MAX (‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] ),
FILTRO (
TODOS (‘Racha OSAT (2)’),
‘Racha OSAT (2)'[Under 75%] = 0
&& ‘Racha OSAT (2)'[Hosp Num] = MÁS TEMPRANO (‘Racha OSAT (2)'[Hosp Num] )
&& ‘Racha OSAT (2)'[Mars Fiscal Mth End Dt]
)
)
&& ‘Racha OSAT (2)'[Mars Fiscal Mth End Dt] <= ANTES ('Racha OSAT (2)'[Mars Fiscal Mth End Dt] )
)
)
)

En respuesta a Anónimo

Hola @Anónimo,

Gracias por su información adicional, podemos intentar crear una medida para cumplir con su requerimiento:

Consecutive Measure = 
VAR LastUnderDate =
    CALCULATE (
        MAX ( 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 0
                && 'OSAT Streak (2)'[Hosp Num] in DISTINCT('OSAT Streak (2)'[Hosp Num])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= MAX('OSAT Streak (2)'[Mars Fiscal Mth End Dt])
        )
    )
RETURN
    CALCULATE (
        COUNTROWS ( 'OSAT Streak (2)' ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 1
                && 'OSAT Streak (2)'[Hosp Num]  in DISTINCT('OSAT Streak (2)'[Hosp Num])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= MAX('OSAT Streak (2)'[Mars Fiscal Mth End Dt])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] >= LastUnderDate
        )
    )+0

3.jpg

Atentamente,

Anónimo

Ejemplo de conjunto de datos a continuación, usando estos dos ejemplos, me gustaría ver un 0 para el n. ° 47 y un 3 para el n. ° 59

Mars Fiscal Año y Pd Hosp Num Satisfacción general: todos los clientes Mars Fiscal Mth End Dt
201706 47 78,95% 17/6/2017
201707 47 80,85% 15/7/2017
201708 47 76,47% 12/8/2017
201709 47 80,36% 9/9/2017
201710 47 75,00% 7/10/2017
201711 47 74,63% 04/11/2017
201712 47 69,33% 02/12/2017
201713 47 66,67% 30/12/2017
201801 47 70,67% 27/01/2018
201802 47 68,75% 24/02/2018
201803 47 77,33% 24/03/2018
201804 47 75,71% 21/4/2018
201805 47 91,04% 19/5/2018
201806 47 88,89% 16/6/2018
201807 47 92,31% 14/7/2018
201808 47 86,90% 11/8/2018
201809 47 86,42% 8/9/2018
201810 47 80,72% 6/10/2018
201811 47 77,01% 03/11/2018
201812 47 76,25% 01/12/2018
201813 47 77,33% 29/12/2018
201901 47 80,00% 26/01/2019
201902 47 75,93% 23/02/2019
201903 47 76,52% 23/03/2019
201904 47 73,88% 20/4/2019
201905 47 76,72% 18/05/2019
201906 47 82,05% 15/6/2019
201907 47 83,81% 13/7/2019
201908 47 81,48% 10/8/2019
201909 47 81,65% 7/9/2019
201910 47 89,19% 5/10/2019
201911 47 89,19% 02/11/2019
201912 47 91,26% 30/11/2019
201913 47 86,32% 28/12/2019
202001 47 87,23% 25/1/2020
202002 47 81,61% 22/02/2020
201706 59 68,75% 17/6/2017
201707 59 70,59% 15/7/2017
201708 59 69,05% 12/8/2017
201709 59 75,00% 9/9/2017
201710 59 68,60% 7/10/2017
201711 59 67,68% 04/11/2017
201712 59 61,80% 02/12/2017
201713 59 72,53% 30/12/2017
201801 59 79,07% 27/01/2018
201802 59 81,55% 24/02/2018
201803 59 78,35% 24/03/2018
201804 59 72,22% 21/4/2018
201805 59 66,67% 19/5/2018
201806 59 56,79% 16/6/2018
201807 59 68,54% 14/7/2018
201808 59 67,59% 11/8/2018
201809 59 71,68% 8/9/2018
201810 59 67,86% 6/10/2018
201811 59 66,67% 03/11/2018
201812 59 70,53% 01/12/2018
201813 59 68,60% 29/12/2018
201901 59 69,09% 26/01/2019
201902 59 68,38% 23/02/2019
201903 59 71,69% 23/03/2019
201904 59 76,32% 20/4/2019
201905 59 81,05% 18/05/2019
201906 59 83,33% 15/6/2019
201907 59 78,63% 13/7/2019
201908 59 72,58% 10/8/2019
201909 59 69,13% 7/9/2019
201910 59 74,03% 5/10/2019
201911 59 76,76% 02/11/2019
201912 59 78,70% 30/11/2019
201913 59 70,65% 28/12/2019
202001 59 68,13% 25/1/2020
202002 59 70,09% 22/02/2020

En respuesta a Anónimo

Hola @Anónimo,

Gracias por su información adicional, podemos intentar crear una medida para cumplir con su requerimiento:

Consecutive Measure = 
VAR LastUnderDate =
    CALCULATE (
        MAX ( 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 0
                && 'OSAT Streak (2)'[Hosp Num] in DISTINCT('OSAT Streak (2)'[Hosp Num])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= MAX('OSAT Streak (2)'[Mars Fiscal Mth End Dt])
        )
    )
RETURN
    CALCULATE (
        COUNTROWS ( 'OSAT Streak (2)' ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 1
                && 'OSAT Streak (2)'[Hosp Num]  in DISTINCT('OSAT Streak (2)'[Hosp Num])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= MAX('OSAT Streak (2)'[Mars Fiscal Mth End Dt])
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] >= LastUnderDate
        )
    )+0

3.jpg

Atentamente,

Anónimo

En respuesta a v-lid-msft

¡Funcionó como por arte de magia! ¡Thamnk, tanto!

Hola @Anónimo,

Podemos intentar crear una columna calculada para obtener los días consecutivos:

Consecutive Measure =
VAR LastUnderDate =
    CALCULATE (
        MAX ( 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 1
                && 'OSAT Streak (2)'[Hosp Num] = EARLIER ( 'OSAT Streak (2)'[Hosp Num] )
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= EARLIER ( 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] )
        )
    )
RETURN
    CALCULATE (
        COUNTROWS ( 'OSAT Streak (2)' ),
        FILTER (
            'OSAT Streak (2)',
            'OSAT Streak (2)'[Under 75%] = 0
                && 'OSAT Streak (2)'[Hosp Num] = EARLIER ( 'OSAT Streak (2)'[Hosp Num] )
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt]
                    <= EARLIER ( 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] )
                && 'OSAT Streak (2)'[Mars Fiscal Mth End Dt] >= LastUnderDate
        )
    )

Si no cumple con sus requisitos, ¿podría proporcionar una muestra de maqueta basada en datos falsos o describir los campos de cada tabla y las relaciones entre las tablas simplemente? Será útil si nos puede mostrar el resultado esperado exacto basado en las tablas. Sube tus archivos a One Drive For Business y comparte el enlace aquí.

Atentamente,

Amitchandak

@Anónimo

¿Puede compartir datos de muestra y salida de muestra?

Deja un comentario

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