Uso de GROUPBY con contexto de filtro dinámico

Un usuario Pregunto ✅

antonioDF

Hola a todos,

Estoy luchando con la función GROUPBY(). Me gustaría agrupar mis datos por ARTÍCULO y hacer un promedio en el volumen. La tabla se filtra mediante una segmentación en la fecha mínima. Parece que la función GROUPBY no está considerando el contexto del filtro ya que el volumen promedio es el mismo con o sin la segmentación de fechas.

Tabla:

ARTÍCULO | FECHA | VOLUMEN

A; 01/01/2013; 50

A; 01/05/2013; 60

A; 01/05/2015; 70

B; 01/01/2013; 50

B; 02/06/2013; 50

B; 03/05/2015; 40

Aquí está el código que estoy usando.

= AGRUPADO (
Tabla;
Tabla[ITEM];
«Volumen medio por artículo»;
PROMEDIOX(
GRUPOACTUAL();
Tabla[Volume]
)
)

Me gustaría que GROUPBY() agrupe la tabla ya filtrada con la segmentación de fechas, por ejemplo Fecha > 01/01/2017.

Debería terminar con esto:

ARTÍCULO | VOLUMEN PROMEDIO

A; 70

B; 40

No es el caso y parece que GROUPBY está ignorando el contexto del filtro.

¿Cuál sería la forma correcta de hacerlo?

Muchísimas gracias.

Alba

En respuesta a antonioDF

Hola @AnthonyDF

En este caso, debe usar solo el nombre de la columna, sin el nombre de la tabla:

SUMX( Grupo_Max; [Max volume] )

Marque la pregunta como resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Salud datanauta

Alba

Hola @AnthonyDF

Parece que estás creando una tabla calculada. Eso es estático y no se verá afectado por el contexto del filtro en absoluto. Intente crear una tabla visual en su lugar, con la medida adecuada

Marque la pregunta como resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Salud datanauta

antonioDF

En respuesta a Alba

Hola AIB, gracias por tu ayuda.

¿Es su función que podría usar en esta medida en lugar de GROUPBY para promediar en el mismo «ARTÍCULO»?

Alba

En respuesta a antonioDF

@AnthonyDF

¿Qué tal tú solo?

1. Coloque la tabla[ITEM] en las filas de una matriz visual

2. Coloca esta sencilla medida en el visual

Measure = 
AVERAGE( Table[Volume] )

3. Usa una cortadora para la fecha

¿Eso no produciría lo que estás buscando lejos o estoy completamente mal entendido?

Marque la pregunta como resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Salud datanauta

antonioDF

En respuesta a Alba

Ok, entiendo lo que quieres decir ahora, pero necesito una tabla como salida. Estoy haciendo más cálculos basados ​​en esta tabla groupby.

Alba

En respuesta a antonioDF

Puede crear una tabla dentro de una medida que se verá afectada por el contexto del filtro

medida =

Var AuxTable_ = //Tu código anterior (GROUPBY)

REGRESO

// El resto del código usando esa tabla aquí

antonioDF

En respuesta a Alba

Hola @AlB,

Gracias por su respuesta. Estoy tratando de probar su solución y creo que podría hacer el trabajo, pero estoy luchando con la sintaxis.

¿Cómo recuerda una columna creada en la función GROUPBY almacenada en la variable?

VAR
Running_date= MAX(Calendario[date])
VAR
Filtered_table_to_date= FILTRO(Tabla1; Tabla1[date]<=fecha_ejecutable)
VAR
Grupo_Max=
AGRUPAR POR(
Filtered_table_to_date;
Tabla 1[Item];
«Maximo volumen»; MAXX(GRUPO ACTUAL(); Tabla1[Volume]
REGRESO

SUMX(Grupo_Max; Grupo_Max[Max volume])

¿Cómo se debe escribir en la función SUMX?

Rgds,

Alba

En respuesta a antonioDF

Hola @AnthonyDF

En este caso, debe usar solo el nombre de la columna, sin el nombre de la tabla:

SUMX( Grupo_Max; [Max volume] )

Marque la pregunta como resuelta cuando haya terminado y considere dar felicitaciones si las publicaciones son útiles.

Salud datanauta

antonioDF

En respuesta a Alba

Muchas gracias, funciona perfectamente!

Deja un comentario

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