DAX: número de índice basado en dos columnas

Un usuario Pregunto ✅

biz_wiz

Hola,

Todavía estoy aprendiendo DAX y realmente agradecería algún apoyo para crear un número de índice en DAX basado en dos columnas en los datos.

Los datos se ven así:

Fecha de Transacción Identificación del cliente Producto
1.2.2019 A X
5.2.2019 A X
16.2.2019 A Y
4.2.2019 B X
20.2.2019 B Y
6.3.2019 A X

El resultado deseado es una tabla visual con un número de índice basado en TransactionDate (filas de grupo por mes) e ID de cliente (agrupado por ID único)

Salida deseada, una tabla visual se ve así:

Índice Inicio del período Fin del periodo Cliente Número de compras X Número de compras Y
1 1.2.2019 28.2.2019 A 2 1
2 1.2.2019 28.2.2019 B 1 1
3 1.3.2019 31.3.2019 A 1 0

Como puede ver, la fila 3 en la tabla visual es el mismo cliente A pero el mes es marzo, por lo que se asigna un nuevo número de índice (3).

Las últimas dos columnas las puedo hacer con medidas y los atributos de fecha que puedo hacer con columnas calculadas usando la función EOMONTH.

¿Alguna pista sobre cómo se podría hacer este número de índice en DAX? ¡Gracias por cualquier aporte!

Hola @biz_wiz,

Agregue dos columnas calculadas en la tabla de origen.

Start of period =DATE ( YEAR ( Sample1[TransactionDate] ), MONTH ( Sample1[TransactionDate] ), 1 )

End of period = EOMONTH(Sample1[Start of period],0)

1 PNG

Nuevas medidas.

index based = SELECTEDVALUE(Sample1[Start of period])&SELECTEDVALUE(Sample1[Customer ID])

Index = RANKX(ALLSELECTED(Sample1),[index based],,ASC,Dense)

Number of purchases X = CALCULATE(COUNT(Sample1[Product]),Sample1[Product]="X")+0

Number of purchases Y = CALCULATE(COUNT(Sample1[Product]),Sample1[Product]="Y")+0

2 PNG

Atentamente,

Yuliana Gu

Hola @biz_wiz,

Agregue dos columnas calculadas en la tabla de origen.

Start of period =DATE ( YEAR ( Sample1[TransactionDate] ), MONTH ( Sample1[TransactionDate] ), 1 )

End of period = EOMONTH(Sample1[Start of period],0)

1 PNG

Nuevas medidas.

index based = SELECTEDVALUE(Sample1[Start of period])&SELECTEDVALUE(Sample1[Customer ID])

Index = RANKX(ALLSELECTED(Sample1),[index based],,ASC,Dense)

Number of purchases X = CALCULATE(COUNT(Sample1[Product]),Sample1[Product]="X")+0

Number of purchases Y = CALCULATE(COUNT(Sample1[Product]),Sample1[Product]="Y")+0

2 PNG

Atentamente,

Yuliana Gu

biz_wiz

En respuesta a v-yulgu-msft

muchas gracias yuliana 🙂 @v-yulgu-msft

Deja un comentario

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