Crear medida% del total

Un usuario Pregunto ✅

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:

Capture.PNG

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:

Capture.PNG

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:

Capture.PNG

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:

1.PNG

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

Deja un comentario

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