nirrobi
Hola a todos,
Tengo tabla como el bramido.
Necesito agregar el nombre de la medida «% de importación del total» que se calcula para cada importación de fila / total total (50/483, … 230/483, etc.)
¿Cómo se puede construir esta medida?
(La importación es la suma de la columna de una tabla
Exportar es la suma de la columna de otra tabla
Total es la medida que suma importación + exportación)
Cliente | Importar | Exportar | Total | Importación% del total |
AAA | 50 | 55 | 105 | 10% |
BBB | 60 | 66 | 126 | 12% |
CCC | 70 | 77 | 147 | 14% |
DDD | 50 | 55 | 105 | 10% |
Total | 230 | 253 | 483 | 48% |
Muchas gracias.
Nir
allaboutdata
En respuesta a nirrobi
Hola Nirrobi,
puedes probar esto
Import % of Total = var bigTotal = SUMX(ALL(Sheet1[Customer]), CALCULATE(SUM(Sheet1[Import]) + SUM(Sheet1[Export]))) return DIVIDE(SUM([Import]),bigTotal)
Básicamente
ALL(Sheet1[Customer])
Lo obliga a realizar el cálculo en todos sus clientes.
CALCULATE(SUM(Sheet1[Import]) + SUM(Sheet1[Export])
Dice hacer la suma de Importación y Exportación fila por fila, es decir, el total
Envuelto con sumx se traduce en, para que todos los clientes calculen el total fila por fila y luego sumen todos los totales para obtener su Total de todos los totales.
Su% del total se convierte en:
DIVIDE(SUM([Import]),bigTotal)
Este es el resultado que obtengo:
Haegi
Hola,
Primero puede crear una columna calculada «BigTotal» = SUM (Total).
La columna calculada no funciona con el contexto, por lo que será la suma de todas las filas de su conjunto de datos.
A continuación, puede crear una nueva medida «Proporción de importación» = Importación /BigTotal
Espero que te ayude.
nirrobi
En respuesta a Haegi
Gracias por su respuesta.
No logré cumplir mi tarea 😞
Me las arreglo para crear una gran tabla con mis datos y enfrento un problema similar a mi opinión.
Necesito tener una tabla / matriz como la que se muestra a continuación, pero no puedo crear la última columna.
Espero que alguien pueda ayudar.
Saludos,
Cumm% | % del total | MONTO | CLIENTE |
17% | 17% | 100 | AAA |
50% | 33% | 200 | BBB |
100% | 50% | 300 | CCC |
100% | 100% | 600 | TOTAL |
nirrobi
En respuesta a nirrobi
Todavía lucho con este problema.
¿alguien? por favor…
allaboutdata
En respuesta a nirrobi
@nirrobi, ¿intentaste usar lo que tenía arriba? ¿Cuáles son tus problemas ahora?
nirrobi
En respuesta a allaboutdata
Lo intenté y lo logré muchas gracias.
¿Pueden ayudarme con el siguiente problema?
Necesito crear un porcentaje acumulativo en una tabla simple.
Cumm% | % del total | MONTO | CLIENTE |
17% | 17% | 100 | AAA |
50% | 33% | 200 | BBB |
100% | 50% | 300 | CCC |
100% | 100% | 600 |
TOTAL |
Haegi
En respuesta a nirrobi
Hola,
Calcular un porcentaje acumulado.
Puede usar nuevamente la fórmula DAX para crear una nueva medida.
No estoy seguro, pero puedes probar una solución como esta.
Cumm = CALCULATE(SUM([%Total]), FILTER(ALL([Customer]), [%Total] <= 1))
Saludos
allaboutdata
En respuesta a Haegi
Hola Nirrobi,
No estoy seguro de a dónde llegaste con esto. No pude obtener exactamente lo que estaba buscando, pero esta parece ser la mejor solución en este momento.
Import % Cumu* Total = var bigTotal = SUMX(ALL(Sheet1[CustID]), CALCULATE(SUM(Sheet1[Import])))
return DIVIDE(SUMX(FILTER(All(Sheet1[CustID]), Sheet1[CustID] <= MAX(Sheet1[CustID])),CALCULATE(SUM(Sheet1[Import]))),bigTotal)
Notarás que tuve que usar una identificación de cliente que era una representación de identificación entera de cada cliente. Esto se debe a que el operador DAX <= no puede comparar dos cadenas. Pensé que ordenar por podría ser una opción, pero el operador no parece llamar a eso.
Esto resulta con una tabla como la siguiente:
La primera línea de código:
var bigTotal = SUMX(ALL(Sheet1[CustID]), CALCULATE(SUM(Sheet1[Import])))
Como antes, calcula el total general.
El comando de filtro en la segunda línea:
FILTER(All(Sheet1[CustID]), Sheet1[CustID] <= MAX(Sheet1[CustID]))
Le dice al cálculo que solo mire los ID de los clientes que son menores que el que está viendo actualmente en el cálculo.
Junto con SUMX y luego haciendo la división.
Avísame si eso funciona.
Tenga en cuenta que si desea utilizarlo en una tabla con la otra medida creada anteriormente, deberá crear una medida basada en ese ID.
Import % of Total CustID = var bigTotal = SUMX(ALL(Sheet1[CustID]), CALCULATE(SUM(Sheet1[Import]) + SUM(Sheet1[Export]))) return DIVIDE(SUM([Import]),bigTotal)
nirrobi
En respuesta a nirrobi
¿alguien?
por favor…
allaboutdata
En respuesta a nirrobi
Hola Nirrobi,
puedes probar esto
Import % of Total = var bigTotal = SUMX(ALL(Sheet1[Customer]), CALCULATE(SUM(Sheet1[Import]) + SUM(Sheet1[Export]))) return DIVIDE(SUM([Import]),bigTotal)
Básicamente
ALL(Sheet1[Customer])
Lo obliga a realizar el cálculo en todos sus clientes.
CALCULATE(SUM(Sheet1[Import]) + SUM(Sheet1[Export])
Dice hacer la suma de Importación y Exportación fila por fila, es decir, el total
Envuelto con sumx se traduce en, para que todos los clientes calculen el total fila por fila y luego sumen todos los totales para obtener su Total de todos los totales.
Su% del total se convierte en:
DIVIDE(SUM([Import]),bigTotal)
Este es el resultado que obtengo:
sdukes_88
En respuesta a allaboutdata
¿Alguien puede ayudarme?
Sigo esto, pero cada vez que mis totales son 100%
nirrobi
En respuesta a sdukes_88
Hola,
¿En qué paso te atascaste?
no importa 🙂 aquí está un resumen de esta publicación:
Creé la tabla como menciono en el primer tema de este hilo:
que creo una medida de la siguiente manera:
Total TODOS =
CALCULAR ( SUMA ( Tabla 1[Total] ), TODOS ( Tabla 1 ) )
Medir el porcentaje de importación del total =
DIVIDIR ( SUMA ( Tabla 1[Import] ), [Total ALL] )
Que con la nueva función llamada «medida rápida«crea la última medida:
Medir el porcentaje de importación del total acumulado en Cliente =
CALCULAR (
‘Tabla 1′[Measure Import % Of Total],
FILTRAR (
TODOS SELECCIONADOS ( ‘Tabla 1′[Customer] ),
ISONORA DESPUÉS ( ‘Tabla 1′[Customer], MAX ( ‘Tabla 1′[Customer] ), DESC )
Espero que te ayude.
Nir