Max de la lista más extensa de filtro de grupo o usuario

Un usuario Pregunto ✅

AC1

Hola,

Esta solicitud es similar a: https://community.powerbi.com/t5/Desktop/DAX-Calculate-the-Max-for-a-Group/mp/64645/highlight/true#…, aunque me costó obtener la solución para trabajar para mí.

Esperaba que alguien pudiera ayudarme a crear una medida (llamemos a esta medida [MS]) que maximizan [Searches] por [Date], [Size] & filtro de usuario (si se aplica algún filtro). Entonces dividiré la suma de [Orders] con la suma de [MS] para obtener la conversión. Con suerte, los ejemplos a continuación dejarán más claro lo que busco.

Ejemplo:

Fecha

Tamaño

Marca

Producto

Búsquedas

Pedidos

01/01/2017

X

A

110

250

2

01/01/2017

X

A

111

250

9

01/01/2017

X

B

120

250

9

01/01/2017

Y

A

210

150

8

01/01/2017

Y

B

220

150

5

01/01/2017

Y

C

230

150

9

01/01/2017

Y

C

230

150

8

01/01/2017

Z

B

320

500

2

02/01/2017

X

A

111

350

2

02/01/2017

X

B

120

350

7

02/01/2017

X

B

120

350

7

02/01/2017

Y

B

121

150

3

02/01/2017

Y

C

231

150

8

02/01/2017

Z

A

310

450

3

02/01/2017

Z

B

320

450

6

02/01/2017

Z

B

320

450

1

02/01/2017

Z

B

321

450

7

02/01/2017

Z

C

330

450

7

  1. Si no se aplica ningún filtro: Conversión = SUMA([Orders]) / SUMA([MS]) = 103 / (250 + 150 + 500 + 350 + 150 + 450) = 5,57 %
  2. Si Tamaño = X y Marca = A: Conversión = SUMA ([Orders]) / SUMA([MS]) = (2+9+2) / (250 + 350) = 2,17 %
  3. Si Tamaño = X & Marca = A & Producto = 111: Conversión = SUMA ([Orders]) / SUMA([MS]) = (9+2) / (250 + 350) = 1,83%
  4. Si Marca = A: Conversión = SUMA([Orders]) / SUMA([MS]) = 24 / (250 + 150 + 350 + 450) = 2,00%
  5. Si Fecha = 01/01/217 & Marca = A: Conversión = SUMA([Orders]) / SUMA([MS]) = (2 + 9 + 😎 / (250 + 150) = 4,75%
  6. Por fecha, Marca = A: {01/01/2017} Conversión = SUM([Orders]) / SUMA([MS]) = (2 + 9 + 😎 / (250 + 150) = 4,75% & {01/02/2017} Conversión = SUMA([Orders]) / SUMA([MS]) = (2 + 3) / (350 + 450) = 0,63%

Tenga en cuenta que el último ejemplo muestra cómo podríamos mostrar la conversión en un gráfico de líneas, con la fecha en el eje x. De manera similar, los datos pueden dividirse por cualquiera de las columnas anteriores, por lo tanto [MS] tendrá que mostrar una cifra para cada uno de los valores en esa columna. También podemos hacer que el usuario seleccione 2 tamaños, marcas, etc., por lo tanto [MS] es necesario combinar las búsquedas adecuadamente para ambos.

Preferiría que la solución funcione en DirectQuery, pero estaré contento con cualquier solución.

Puede haber una mejor manera de hacer esto y me complace escuchar soluciones alternativas, siempre que logre los resultados del ejemplo.

Espero que esto tenga sentido, de lo contrario, solo escríbame e intentaré explicarlo mejor.

Salud,

Alejandro

hola @AC1

¿Cómo se ve esto? Simplemente reemplace donde tengo Table6 con su nombre de tabla.

MS = 
VAR 
	P = SUMX(SUMMARIZE(Table6,'Table6'[Date],'Table6'[Size],"Searches",MAX('Table6'[Searches])),[Searches])
VAR T =  DIVIDE(
			CALCULATE(
				SUM(Table6[Orders])
				),
			P)
				
RETURN T

hola @AC1

¿Cómo se ve esto? Simplemente reemplace donde tengo Table6 con su nombre de tabla.

MS = 
VAR 
	P = SUMX(SUMMARIZE(Table6,'Table6'[Date],'Table6'[Size],"Searches",MAX('Table6'[Searches])),[Searches])
VAR T =  DIVIDE(
			CALCULATE(
				SUM(Table6[Orders])
				),
			P)
				
RETURN T

AC1

En respuesta a Phil_Seamark

Hola @Phil_Seamark,

¡¡Funcionó!!

Gracias.

Salud,

Alex

AC1

En respuesta a Phil_Seamark

Hola @Phil_Seamark,

Eso se ve bien.

Lo intentaré ahora y te mantendré informado.

Gracias.

Salud,

Alex

Hola @AC1,

De «crear una medida (llamemos a esta medida [MS]) que maximizan [Searches] por cualquiera de los dos grupos ([Date], [Size]) o filtro de usuario (el que tenga más filas), la medida «MS» devolverá el máximo [Searches] en base a los filtros. Por ejemplo, si Talla = X y Marca = A: Conversión = SUMA([Orders]) / SUMA([MS]) = (2+9+2) / (250 + 350) = 2,17%, el [MS] y Suma([MS]) devuelve 350. ¿Por qué en su escenario es (250+350)?

También para sus 5 condiciones, cada una devolverá un valor, ¿por qué desea mostrar los resultados en un gráfico de líneas en lugar de la tarjeta visual?

Atentamente,
qiuyun yu

AC1

En respuesta a v-qiuyu-msft

Hola,

Gracias por mirar mi consulta.

Con respecto a «También para sus 5 condiciones, cada una devolverá un valor, por qué desea mostrar los resultados en un gráfico de líneas en lugar de la tarjeta visual». el gráfico de líneas es cuando encontraremos el [MS] por cada fecha, pero quizás sobre varios tamaños, marcas y productos. Me doy cuenta de que los ejemplos no muestran eso, por lo que escribí «Tenga en cuenta que es posible que tengamos la conversión mostrada en un gráfico de líneas, con la fecha en el eje x. » después… 🙂 Agregaré un ejemplo ahora:

  1. Fecha en el eje x, Marca = A: {01/01/2017} Conversión = SUMA([Orders]) / SUMA([MS]) = (2 + 9 + 😎 / (250 + 150) = 4,75% & {01/02/2017} Conversión = SUMA([Orders]) / SUMA([MS]) = (2 + 3) / (350 + 450) = 0,63%

La razón por la que está confundido con «¿Por qué en su escenario es (250+350)?» es porque no he explicado el camino [MS] funciona con precisión. [MS] es el máximo de [Searches] por [Date] & [Size] & filtro de usuario (si lo hay). Así que en este ejemplo usamos [Date] & [Size] & [Brand] y obtenga 250 como máximo de {01/01/2017}, {X}, {A} y 350 como máximo de {02/01/2017}, {X}, {A}. Voy a cambiar la explicación en mi publicación original.

Gracias de nuevo.

Salud,

Alex

Deja un comentario

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