DAx para crear una clasificación de dimensión dinámica basada en otra dimensión

Un usuario Pregunto ✅

Anónimo

Aquí está mi problema: tengo 1 tabla de hechos sobre compras, 2 dimensiones (Productos, Clientes)

Quiero crear un tipo de cliente en función del producto comprado mayoritariamente para un intervalo de fechas determinado.

Ejemplo:

Dimensión de división
Fruta
Carne
Verduras
Fecha Cliente División de productos Montones
01/01/2018 John Fruta 7
02/01/2018 John Verduras 8
01/03/2018 Meg Fruta 13
01/04/2018 Meg Carne dieciséis
01/05/2018 Meg Verduras 5
01/03/2018 Salida Fruta 3
01/04/2018 Salida Carne 2
01/05/2018 Salida Verduras 5

tomando el tonelaje máximo para ese cliente, quiero asignar un tipo de cliente a la dimensión del cliente (Ejemplo:

Dimensión personalizada tipo de cliente
John Verduras
Meg Carne
Salida Fruta

¿Alguna idea?

Gracias

Hola @Anónimo

De su ejemplo, parece que el «rango de fechas dado» aquí es anterior al 2018/5/1, por lo que uso la columna «fecha» en una cortadora y selecciono «antes del 2018/5/1».

Primero creo una tabla de fechas de calendario

Table2 = CALENDARAUTO() 

tenga en cuenta que no debe crear una relación entre esta tabla de fechas y su tabla.

Luego cree medidas en su tabla (llamada Tabla1 a continuación)

max = MAX(Table2[Date])

min = MIN(Table2[Date]) 

max purchase = CALCULATE(MAX(Table1[Tons ]),FILTER(ALLEXCEPT(Table1,Table1[Customer]),[Date ]>=[min]&&[Date ]<[max]))

max-produce = CALCULATE(MAX(Table1[Product Division ]),FILTER(ALLEXCEPT(Table1,Table1[Customer]),[Tons ]=[max purchase]))

9.png

Atentamente

Maggie

Hola @Anónimo

De su ejemplo, parece que el «rango de fechas dado» aquí es anterior al 2018/5/1, por lo que uso la columna «fecha» en una cortadora y selecciono «antes del 2018/5/1».

Primero creo una tabla de fechas de calendario

Table2 = CALENDARAUTO() 

tenga en cuenta que no debe crear una relación entre esta tabla de fechas y su tabla.

Luego cree medidas en su tabla (llamada Tabla1 a continuación)

max = MAX(Table2[Date])

min = MIN(Table2[Date]) 

max purchase = CALCULATE(MAX(Table1[Tons ]),FILTER(ALLEXCEPT(Table1,Table1[Customer]),[Date ]>=[min]&&[Date ]<[max]))

max-produce = CALCULATE(MAX(Table1[Product Division ]),FILTER(ALLEXCEPT(Table1,Table1[Customer]),[Tons ]=[max purchase]))

9.png

Atentamente

Maggie

Anónimo

En respuesta a v-juanli-msft

HOLA-

Recibo un error en la compra máxima

No se puede determinar un solo valor para la columna ‘Fecha’ en la tabla ‘Calendario 1’. Esto puede suceder cuando una fórmula de medida hace referencia a una columna que contiene muchos valores sin especificar una agregación como mínimo, máximo, recuento o suma para obtener un único resultado.

¿Pueden ayudarme?

En respuesta a Anónimo

Hola @Anónimo

este error ocurre porque usted pone directamente una columna en una medida, pero por diseño, necesita especifique una agregación como mínimo, máximo, recuento o suma para obtener un único resultado.

Measure1 = calendario[date] (error)

Measure2 = max (calendario[date])

No se preocupe, obtendrá el valor máximo para el [date] columna, la fórmula de Measure2 solo da el valor actual de cada fila. por ejemplo,

fecha Measure2

2018/1/1 2018/1/1

2018/4/1 2018/4/1

2018/5/1 2018/5/1

para obtener el valor máximo de la [date] columna, debe definir el contenido del filtro.

por ejemplo

fecha Measure3

2018/1/1 2018/6/1

2018/2/1 2018/6/1

2018/3/1 2018/6/1

2018/4/1 2018/6/1

2018/5/1 2018/6/1

2018/6/1 2018/6/1

Measure3 = calcular (max (calendario[date]), todos (calendario))

Atentamente

Maggie

Greg_Deckler

Measure  = 
VAR __customer = MAX([Customer])
VAR __table = SUMMARIZE(ALL('table19'),[Customer],[Product Division ],"__Tons",SUM([Tons ]))
VAR __max = MAXX(FILTER(__table,[Customer]=__customer),[__Tons])
RETURN MAXX(FILTER(__table,[Customer]=__customer && [__Tons]=__max),[Product Division ])

Deja un comentario

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