Promedio de ventas por mes

Buenas noches.

Estoy teniendo un inconveniente, tengo una matriz, en la cual tengo: en las columnas los meses, en las filas el nombre y apellido de los clientes, y los valores de la misma son la sumatoria de los kilogramos comprados (por esos clientes, en ese mes).

Necesito en la columna de los totales, poder calcular un promedio de los kilos comprados por ese cliente para los meses en cuestion. 

Ejemplo:

Cliente Enero Febrero Marzo Abril Promedio por mes
Jose perez 15 kg     0 kg   5 kg 0 kg 5 kg
Abel ayala 0 kg 0kg 15 kg 15 kg 7,5 kg

Necesitaria si me pueden ayudar a ver como puedo lograr solucionar esto. Ya que tengo el inconveniente que los meses que los kg vendidos son 0, no estoy logrando que ese mes se sume como un mes mas a la hora de hacer la division.(suma de kg totales de ese usuario/meses transcurridos).

 

Saludos

Muy buenos días,

 

Tienes la posibilidad de una vez tienes la tabla dinámica, en diseño añadir una columna de totales. En esta, puedes clickear con el botón derecho e irte a mostrar valores como. Una vez ahí elige la opción de promedio.

 

Confirma si esta solución es la que necesitas, si no le damos una vuelta de hoja.

 

Saludos!

Hola Andrés,

Antes de responderte necesito aclarar una cosa: cuando dices que tienes una matriz ¿te refieres a que tus datos los has leído con esa estructura? (con estructura de data dinámica) ¿o que has creado un objeto visual en el lienzo de tipo "Matriz" al que has llevado el mes a columnas, y el nombre de los clientes a filas?

Saludos

Daniel

Hola Daniel 

Buen dia.

Que he creado un objeto visual en forma de matriz como se ve a continuacion.

Los datos los tengo por pedidos de compra. Tiene un ID de pedido, para un cliente, un determinado producto, y la cantidad pedida en kg. Como en el siguiente ejemplo: 

Datos: 

ID pedido Fecha Cliente  Producto kg
001 01/01 Jose gomez Helado de dulce de leche 4,5
002 02/01 Andres Recalde Helado Almendrado 1,5
003 03/06 Andres Recalde Helado de limon 7,6

Lienzo matriz:

Lo que necesito lograr es que en mi lienzo matriz, la columna subrayada en rojo "total", en vez de los totales, se muestren los "promedios de kg por mes."

El siguiente calculo es el que quiero lograr que haga Power Bi en esa columna:

Ejemplo cliente Josefina Jaime: 

671 kilos vendidos /11 meses = 61 kilos promedio por mes.

No se si he sido claro. 

 

Muchas gracias

Saludos 

 

 

Hola Andrés,

La verdad es que la cuestión que planteas no es sencilla. Para simular tu escenario he partido de la siguiente tabla:

Tabla de datos

Como puedes ver, incluyo datos para 4 meses pero muchas combinaciones de cliente-mes no tienen ninguna entrada.

Por otro lado, en tus datos se incluye el producto pero después no aparece en la matriz, así que yo he incluido un campo Producto -por si acaso- aunque no lo uso.

Y esta es la solución a la que llego:

Resultado

Fíjate que los meses no aparecen ordenados, doy por sentado que eso lo puedes arreglar.

Te cuento lo que he hecho y, si te sirve, lo adaptas a tus tablas:

La cuestión de los ceros es importante y no es fácil de resolver, pues no hay una forma sencilla de decirle a DAX que sustituya lo que no exista por ceros. Así que mi sugerencia es que -si tienes, por ejemplo, datos de enero a abril como en mi ejemplo, y clientes de A a C, crees una tabla (con CROSSJOIN) con todas las combinaciones de meses y clientes que tenga ceros en el campo Kg. De este modo ya tendríamos la tabla que buscas (pero con ceros).:

tabla_completa_vacía = 
    ADDCOLUMNS(
        CROSSJOIN(
            VALUES(Ventas[Cliente]);
            VALUES(Ventas[Nombre del mes])
        );
        "Kg"; 0
    )

Tabla completa vacía

Ahora hay que "sumar" a esta tabla la de ventas. Y esto tampoco es inmediato, porque un NATURALLEFTOUTERJOIN (en el que la tabla de la izquierda tendría que ser la tabla completa vacía que acabamos de crear) nos haría perder el campo Kg de la tabla de ventas (que es el campo "bueno"), así que mi sugerencia es hacer un UNION de las dos tablas escogiendo los campos que nos interesa:

Tabla unión = 
    VAR tabla_derecha = 
        SELECTCOLUMNS(
            Ventas;
            "Cliente"; Ventas[Cliente];
            "Nombre del mes"; Ventas[Nombre del mes];
            "Kg"; Ventas[Kg]
            )
    RETURN
        UNION(
            'tabla_completa_vacía';
            tabla_derecha
        )

Tabla unión

Y aquí viene otra cuestión: en una matriz, la función de agregación que se aplica al subtotal es la misma que se aplica a los valores. Si quieres que se calcule el promedio en el subtotal, también hay que aplicar la función promedio a los datos, de forma que la única forma de que esto funcione es que apliques dicha función a una tabla de datos en la que solo haya una entrada para cada combinación de fila-columna, para que el promedio (de un valor) coincida con el mismo valor, no sé si me explico.

De modo que, si quieres promedio, la "tabla unión" que hemos calculado no sirve todavía: hay que agregarla sumando por cliente y mes:

Tabla agregada = 
    SUMMARIZE(
        'Tabla unión';
        'Tabla unión'[Cliente];
        'Tabla unión'[Nombre del mes];
        "Kg"; SUM('Tabla unión'[Kg])
    )

Tabla agregada

Y ahora ya tenemos la tabla perfecta: una única entrada por fila y columna, y con ceros donde no hay datos. Así que ya puedo crear mi matriz y especificar que se aplique la función de agregación promedio:

Matriz

Espero que te sirva.

Un saludo

Daniel Burrueco

Enviado por andresp91 el Lun, 21/10/2019 - 05:23