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…
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!
Estoy trabajando en la…
Estoy trabajando en la herramienta Power BI, no con tablas dinamicas. Y no me aparecen esas opciones.
Si sabes como hacerlo en Power BI te agradeceria.
Gracias por la respuesta.
Hola Andrés, Antes de…
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…
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:
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…
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:
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:
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
)
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
)
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])
)
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:
Espero que te sirva.
Un saludo
Daniel Burrueco
Se ha incluido como…
Se ha incluido como Escenario DAX la creación de una tabla en la que se sustituyen los valores inexistentes por ceros:
https://www.interactivechaos.com/dax/scenario/completado-de-una-tabla-sustituyendo-valores-inexistentes-por-ceros
Daniel