Calcular la medida de todas las combinaciones por pares de una categoría

Un usuario Pregunto ✅

Bernd

Tengo la siguiente tabla de hechos:

FactTbl
IDENTIFICACIÓN Categoría Valor
1 gato1 3
2 gato1 5
2 gato2 2
3 gato1 7
3 gato3 1

y una medida ResultMeasure := SUM(FactTbl[Value]).

Necesito encontrar una forma de calcular ResultMeasure sobre todas las combinaciones por pares de las categorías filtradas:

ResultTbl
Categoría 1 Categoría2 Resultado
gato1 gato1 15
gato1 gato2 17
gato1 gato3 dieciséis
gato2 gato1 17
gato2 gato2 2
gato2 gato3 3
gato3 gato1 dieciséis
gato3 gato2 3
gato3 gato3 1

La salida debe visualizarse en una matriz. Preferiblemente, ResultTbl no debería ser una tabla estática (solo si no hay otra manera), pero donde todavía puedo filtrar en FactTbl[ID] con el respectivo recálculo de ResultTbl[Result].

Zubair_Muhammad

Hola @Bernd

Prueba esta TABLA CALCULADA

Desde Modelado TAB>>NUEVA TABLA

Table =
VAR Table1 =
    SELECTCOLUMNS ( VALUES ( FactTbl[Category] ), "Category2", [Category] )
VAR Table2 =
    SELECTCOLUMNS ( VALUES ( FactTbl[Category] ), "Category1", [Category] )
RETURN
    ADDCOLUMNS (
        CROSSJOIN ( Table1, Table2 ),
        "Result",
        VAR y = [Category1]
        VAR z = [Category2]
        RETURN
            CALCULATE ( SUM ( FactTbl[Value] ), FactTbl[Category] IN { y, z } )
    )

Zubair_Muhammad

Hola @Bernd

Prueba esta TABLA CALCULADA

Desde Modelado TAB>>NUEVA TABLA

Table =
VAR Table1 =
    SELECTCOLUMNS ( VALUES ( FactTbl[Category] ), "Category2", [Category] )
VAR Table2 =
    SELECTCOLUMNS ( VALUES ( FactTbl[Category] ), "Category1", [Category] )
RETURN
    ADDCOLUMNS (
        CROSSJOIN ( Table1, Table2 ),
        "Result",
        VAR y = [Category1]
        VAR z = [Category2]
        RETURN
            CALCULATE ( SUM ( FactTbl[Value] ), FactTbl[Category] IN { y, z } )
    )

Bernd

En respuesta a Zubair_Muhammad

Gracias. @Zubair_Muhammad, esto funciona muy bien para una tabla estática.

Ya que tengo algunas tablas de atenuación que implementan filtros en FactTable[Id]. ¿Hay alguna manera de hacer que el cálculo sea dinámico? Hasta ahora solo logré agregar esos filtros estáticamente a la última cláusula CALCULATE.

Zubair_Muhammad

En respuesta a Zubair_Muhammad

@Bernd

cruzjoin.png

Deja un comentario

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