¿Alguien puede ayudarme a arreglar mi fórmula Percentile DAX?

Un usuario Pregunto ✅

dragonus

Mi fórmula actual a continuación me permitió calcular los percentiles para los valores que tengo. Sin embargo, tuvo en cuenta todo el rango de valores y rango dentro de mi tabla y no solo dentro de sus propias categorías. Entonces, en lugar de crear percentiles dentro de A / B / C por separado, creó percentiles que abarcan todo A / B / C.

¿Cómo debo solucionar este problema para que los percentiles se calculen dentro de sus propias categorías?

Percentile = DIVIDE(
CALCULATE (
COUNTX( 'Z-Table', 'Z-Table'[Value]),
FILTER('Z-Table','Z-Score'[Rank] > EARLIER ('Z-Score'[Rank]))),
CALCULATE(COUNT('Z-Score'[Value]),ALL('Z-Score')))

PaulDBrown

En respuesta a dragonus

@dragonus

Percentile = DIVIDE(
CALCULATE (
COUNTX( 'Z-Table', 'Z-Table'[Value]),
FILTER('Z-Table','Z-Score'[Rank] > EARLIER ('Z-Score'[Rank]))),
CALCULATE(COUNT('Z-Score'[Value]),ALL('Z-Score')))

parece haber 2 tablas referenciadas en su medida: Z-Table (COUNTX (‘Tabla Z’ …) y Z-Score (TODOS (‘Puntaje Z’)

¿Puedes publicar una tabla de muestra con datos falsos?

En respuesta a dragonus

Hola @dragonus,

Estas tratando de calcular ¿Percentil por categoría? En caso afirmativo, consulte:

Percentile =
DIVIDE (
    CALCULATE (
        COUNT ( 'Z-Table'[Value] ),
        FILTER (
            ALLEXCEPT ( 'Z-Table', 'Z-Table'[Category] ),
            'Z-Score'[Rank] > EARLIER ( 'Z-Score'[Rank] )
        )
    ),
    CALCULATE (
        COUNT ( 'Z-Score'[Value] ),
        ALLEXCEPT ( 'Z-Score', 'Z-Score'[Category] )
    )
)

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Atentamente,

Dedmon Dai

PaulDBrown

@dragonus

Intente usar ALLEXCEPT en lugar de ALL:

Percentil = DIVIDIR (
CALCULAR (
COUNTX (‘Tabla Z’, ‘Tabla Z'[Value]),
FILTRO (‘Tabla Z’, ‘Puntuación Z'[Rank] > ANTES (‘Z-Score'[Rank]))),
CALCULAR (COUNT (‘Puntaje Z'[Value]),ALLEXCEPT (‘Z-Score’, Z-Score[Category])))

dragonus

En respuesta a PaulDBrown

@PaulDBrown @nandic

Intenté usar ALLEXCEPT, pero el resultado final me devolvió números que van de 0.000 a miles … No estoy muy seguro de por qué es así … anteriormente mis percentiles estaban todos en el 0.0 a 0.9s, así que podría usarlo para calcular las categorías apropiadas para ellos más adelante, que es lo que quería

PaulDBrown

En respuesta a dragonus

@dragonus

¿Cómo está configurado su modelo y cuál es la estructura de las tablas?

dragonus

En respuesta a PaulDBrown

@PaulDBrown

No estoy muy seguro de lo que quiere decir, esta tabla es una tabla independiente, no conectada con ninguna otra tabla.

Mi tabla tiene 6 columnas, a saber, Fecha / Categoría / Valor / Rango (Columna creada) / Percentil (Columna creada) / Bins (columna creada).

Fecha: Histórico, desde 2000 hasta hoy, de forma semanal.

Categoría: Nombres de diferentes estados (por ejemplo, Alabama / Florida / Wisconsin / etc.)

Valor: cuánto ganan en una semana, como valores

Clasificación: se usó RANKX para crear una clasificación dentro de cada estado, por lo que Alabama tendrá su propio 1 a X, por ejemplo

Percentil: Quería usarlo para medir cómo se compara el rango en una fecha en particular con los rangos de otras fechas en un estado determinado.

Bandejas: se basa en el percentil, donde se asignan a bandejas de 10 (p. Ej., 0 – 10 / 10-20 / etc.)

Espero que esté bastante claro..

PaulDBrown

En respuesta a dragonus

@dragonus

Percentile = DIVIDE(
CALCULATE (
COUNTX( 'Z-Table', 'Z-Table'[Value]),
FILTER('Z-Table','Z-Score'[Rank] > EARLIER ('Z-Score'[Rank]))),
CALCULATE(COUNT('Z-Score'[Value]),ALL('Z-Score')))

parece haber 2 tablas referenciadas en su medida: Z-Table (COUNTX (‘Tabla Z’ …) y Z-Score (TODOS (‘Puntaje Z’)

¿Puedes publicar una tabla de muestra con datos falsos?

dragonus

En respuesta a PaulDBrown

@PaulDBrown Disculpas, ambos son la misma tabla. Puntuación mal escrita como tabla jajaja

En respuesta a dragonus

Hola @dragonus,

Estas tratando de calcular ¿Percentil por categoría? En caso afirmativo, consulte:

Percentile =
DIVIDE (
    CALCULATE (
        COUNT ( 'Z-Table'[Value] ),
        FILTER (
            ALLEXCEPT ( 'Z-Table', 'Z-Table'[Category] ),
            'Z-Score'[Rank] > EARLIER ( 'Z-Score'[Rank] )
        )
    ),
    CALCULATE (
        COUNT ( 'Z-Score'[Value] ),
        ALLEXCEPT ( 'Z-Score', 'Z-Score'[Category] )
    )
)

Si esta publicación ayuda, considere Aceptarla como la solución para ayudar a los demás miembros a encontrarla más rápidamente.

Atentamente,

Dedmon Dai

nándico

@dragonus,
En el último paso donde calcula el denominador, debe usar la función AllExcept para agrupar valores por categoría.
Si desea calcular el denominador por grupo, use AllExcept (tabla, categoría).
Ejemplo de cuándo usarlo: tiene valores por mes y le gustaría encontrar el porcentaje de cada mes en el total del año.
Numerador = suma (cantidad) – mensual
Denumerador = calcular ([Numerator], AllExcept (tabla, año)) – anual
% del año = dividir ([Numerator],[Denumerator])

dividir denumanator.PNG

Allison Kennedy

Sería útil saber cuáles son sus columnas de datos, pero básicamente necesita cambiar el denominador de su función de división.

Usando https://www.daxformatter.com/ para formatear su fórmula actual, puede ver mejor dónde comienza el denominador y que he actualizado ALL () para eliminar solo los filtros en la categoría actual, no en toda la tabla Z.

Percentil =
DIVIDIR (
CALCULAR (
COUNTX (
‘Z-Table’,
‘Z-Table'[Value]
),
FILTRAR (
‘Z-Table’,
‘Puntuación Z'[Rank]
> MÁS TEMPRANO ( ‘Puntuación Z'[Rank] )
)
),
CALCULAR (
CONTAR ( ‘Puntuación Z'[Value] ),
TODOS ( ‘Puntuación Z’[Category] )
)
)

dragonus

En respuesta a Allison Kennedy

@AllisonKennedy

Mis columnas de datos son Fecha / Categoría / Valor / Rango (columna de creación) / percentil (columna de creación) / bins (columna de creación)

Los Bins están categorizando esencialmente los percentiles en bins de +10 percentiles

Hice lo que mencionaste (agregando [Category] para TODOS), pero devolvió que había una dependencia circular … extraño

Deja un comentario

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