Sume una medida en 2 capas de categorización, encabezados de columnas múltiples

Un usuario Pregunto ✅

holanda

Hola,

Estoy usando la siguiente medida DAX para determinar si se logró un KPI para una categoría en particular:

KPI logrado = SUMX (
Categoría,
SI (Categoría[Category] = «Bebidas»,si([%Avg]>=1,1,0),
SI (Categoría[Category] = «Repostería Homestock»,if([%Avg]>=1,1,0),
SI (Categoría[Category] = «Impulso de Confitería»,if([%Avg]>=1,1,0),
SI (Categoría[Category] = «Comida»,si([%Avg]>=1,1,0),
SI (Categoría[Category] = «Purina»,si([%TGT]>=1,1,0),
SI (Categoría[Category] = «Aguas»,si([% TGT]>=1,1,0),
BLANCO() )
)
)))))

Cada categoría tiene un objetivo diferente. He usado esta función junto con declaraciones IF para ver si se logra el objetivo para cada categoría para resaltar eso con un 1. Luego pongo esta medida en una tabla.

Hay un nivel adicional de complejidad: necesito mostrar los resultados divididos en 2 categorías más altas: SS y MC, que eventualmente darían 12 KPI, en lugar de solo 6. Cuando pongo esto en la tabla, el valor total al final es ‘ t la suma de las 12 categorías, como sigue:

01.PNG

Entonces, por ejemplo, la segunda fila debe sumar 11, no 6.

Mis categorías están en una tabla, mis categorías altas están en otra y mi lista de ID, a la izquierda, está en una tabla final.

¿Alguien puede ayudarme con esto?

Gracias,

Marcos

@mjholland

En su fórmula, se analiza solo en el nivel de Categoría, no tomará el contexto de filtro de categorías más altas, lo que significa que en el nivel total general, nunca calculará más de 6 ya que solo tiene 6 categorías.

Para su requisito, debe usar una tabla de resumen para tener su grupo de cálculo en categorías superiores (SS, MC). Puedes probar la fórmula como a continuación;

KPI Achieved =
SUMX (
    SUMMARIZE (
        HighCategories,
        HighCategories[HighCategories],
        "KpiCount", SUMX (
            Category,
            IF (
                Category[Category] = "Beverages",
                IF ( [%Avg] >= 1, 1, 0 ),
                IF (
                    Category[Category] = "Confectionery Homestock",
                    IF ( [%Avg] >= 1, 1, 0 ),
                    IF (
                        Category[Category] = "Confectionery Impulse",
                        IF ( [%Avg] >= 1, 1, 0 ),
                        IF (
                            Category[Category] = "Food",
                            IF ( [%Avg] >= 1, 1, 0 ),
                            IF (
                                Category[Category] = "Purina",
                                IF ( [%TGT] >= 1, 1, 0 ),
                                IF ( Category[Category] = "Waters", IF ( [% TGT] >= 1, 1, 0 ), BLANK () )
                            )
                        )
                    )
                )
            )
        )
    ),
    [KpiCount]
)

Saludos,

@mjholland

En su fórmula, se analiza solo en el nivel de Categoría, no tomará el contexto de filtro de categorías más altas, lo que significa que en el nivel total general, nunca calculará más de 6 ya que solo tiene 6 categorías.

Para su requisito, debe usar una tabla de resumen para tener su grupo de cálculo en categorías superiores (SS, MC). Puedes probar la fórmula como a continuación;

KPI Achieved =
SUMX (
    SUMMARIZE (
        HighCategories,
        HighCategories[HighCategories],
        "KpiCount", SUMX (
            Category,
            IF (
                Category[Category] = "Beverages",
                IF ( [%Avg] >= 1, 1, 0 ),
                IF (
                    Category[Category] = "Confectionery Homestock",
                    IF ( [%Avg] >= 1, 1, 0 ),
                    IF (
                        Category[Category] = "Confectionery Impulse",
                        IF ( [%Avg] >= 1, 1, 0 ),
                        IF (
                            Category[Category] = "Food",
                            IF ( [%Avg] >= 1, 1, 0 ),
                            IF (
                                Category[Category] = "Purina",
                                IF ( [%TGT] >= 1, 1, 0 ),
                                IF ( Category[Category] = "Waters", IF ( [% TGT] >= 1, 1, 0 ), BLANK () )
                            )
                        )
                    )
                )
            )
        )
    ),
    [KpiCount]
)

Saludos,

holanda

En respuesta a v-sihou-msft

@v-sihou-msft esto es perfecto, funciona de maravilla. Muchas gracias.

Deja un comentario

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