Calcular el porcentaje de ventas

Un usuario Pregunto ✅

Anónimo

Hola

Lo he intentado varias veces sin éxito y no pude encontrar una publicación similar para resolver este problema. Aprecio cualquier ayuda que pueda hacer por cualquier persona que tenga un problema similar.

Aquí están mis datos de muestra:

PERÍODO PNL VALOR
18 de mayo ALQUILAR 100
18 de mayo UTILIDADES 101
18 de mayo SUMINISTROS 80
18 de mayo INGRESOS 400
18 de junio ALQUILAR 101
18 de junio UTILIDADES 100
18 de junio SUMINISTROS 101
18 de junio INGRESOS 450

Quiero crear una tabla que pueda generar esta información con DAX. Puedo hacer SUM / Calculate con la columna «TOTAL», pero no puedo obtener% de ingresos correctamente sin crear medidas individuales (como RENT as% of Sales = DIVIDE (CALCULATE (SUM (VALUE), PNL = «RENT», CALCULATE (SUMA (VALOR), PNL = «INGRESOS»), 0).

Dado que mi tabla de hechos real tiene más de una docena de métricas, no es eficiente crear una medida para cada métrica de PNL. ¿Hay alguna solución al respecto?

PNL TOTAL % DE INGRESOS
ALQUILAR 201 23,6%
UTILIDADES 201 23,6%
SUMINISTROS 181 21,3%
INGRESOS 850 100,0%

¡Gracias de antemano por su amable ayuda!

Alba

En respuesta a Alba

@Anónimo

Parece que el denominador en su DIVIDE () está dando un cero.

Tenga cuidado porque las filas en su visual de matriz están filtrando la tabla METRICS y luego está filtrando por encima de eso para «VENTAS NETAS CONSOLIDADAS (NG) «en el denominador. Por eso obtendría ceros en todas partes excepto el 100% en la fila de» VENTAS NETAS CONSOLIDADAS (NG) «.

Prueba este cambio en tu medida:

PERCENTAGE OF SALES =
DIVIDE (
    [Actual PNL],
    CALCULATE (
        [Actual PNL],
        FILTER ( ALL ( METRICS[PNL] ), METRICS[PNL] = "CONSOLIDATED NET SALES (NG)" )
    ),
    0
)

y también asegúrate «VENTAS NETAS CONSOLIDADAS (NG) «se escribe exactamente como aparece en su tabla

Alba

Hola @Anónimo

Si comprendo correctamente lo que necesita, puede hacer lo siguiente:

1. Configure una matriz visual en su informe

2. Lugar [PNL] en filas de la matriz

3. Coloque esta medida en valores de la matriz para el TOTAL:

Total = SUM(Table1[VALUE])

4. Coloque esta medida en valores (ligera variación de lo que ya tenía):

% of Revenue =
DIVIDE (
    SUM ( Table1[VALUE] ),
    CALCULATE ( SUM ( Table1[VALUE] ), Table1[PNL] = "REVENUE" )
)

Anónimo

En respuesta a Alba

@Gracias por responder, @AlB.

Hice exactamente los pasos que indicó en mi modelo, pero no pude obtener los resultados con precisión (% de ingresos). Aunque puedo replicar el resultado creando medidas individuales, no es escalable.

Alba

En respuesta a Anónimo

@Anónimo

¿Cuál es el problema exactamente en el resultado que obtiene?

Anónimo

En respuesta a Alba

@Alba

2018-12-27_7-53-58.jpg

El resultado es 0%

Aquí está mi fórmula DAX:

PORCENTAJE DE VENTAS =
DIVIDIR (
[Actual PNL],
CALCULAR (
[Actual PNL],
FILTRAR ( MÉTRICAS, MÉTRICAS[PNL] = «VENTAS NETAS CONSOLIDADAS (NG)» )
),
0
)

Alba

En respuesta a Anónimo

@Anónimo

el código para tu medida [Actual PNL] ??

Anónimo

En respuesta a Alba

@Alba

METRICS es una tabla de búsqueda con métricas PNL únicas (ventas brutas, devoluciones, etc.)

Alba

En respuesta a Anónimo

@Anónimo

Quise decir: ¿puedes mostrar el código que usas para tu medida? [Actual PNL]?

Alba

En respuesta a Alba

@Anónimo

Parece que el denominador en su DIVIDE () está dando un cero.

Tenga cuidado porque las filas en su visual de matriz están filtrando la tabla METRICS y luego está filtrando por encima de eso para «VENTAS NETAS CONSOLIDADAS (NG) «en el denominador. Por eso obtendría ceros en todas partes excepto el 100% en la fila de» VENTAS NETAS CONSOLIDADAS (NG) «.

Prueba este cambio en tu medida:

PERCENTAGE OF SALES =
DIVIDE (
    [Actual PNL],
    CALCULATE (
        [Actual PNL],
        FILTER ( ALL ( METRICS[PNL] ), METRICS[PNL] = "CONSOLIDATED NET SALES (NG)" )
    ),
    0
)

y también asegúrate «VENTAS NETAS CONSOLIDADAS (NG) «se escribe exactamente como aparece en su tabla

Anónimo

En respuesta a Alba

@Alba

También encontré una solución similar con este DAX, omitiendo por completo la tabla de búsqueda METRIC:

PORCENTAJE DE VENTAS = DIVIDIR ( [Actual PNL] , Calcular ([Actual PNL], filtro (ALLSELECTED (EIW), EIW[LPD Profit Loss Line]= «VENTAS NETAS CONSOLIDADAS (NG)»)), 0)

Alba

En respuesta a Anónimo

@Anónimo

Frio Smiley feliz

Tenga en cuenta que el

PNL = «INGRESOS»

como argumento de filtro para el CALCULAR que tenía al principio (y debería funcionar) es en realidad equivalente a

FILTRO (TODOS (MÉTRICAS[PNL]), MÉTRICAS[PNL]= «INGRESOS»)

de hecho, el primero se traduce en el segundo internamente por el motor DAX.

Anónimo

En respuesta a Alba

@Alba

¡TÚ MOLAS!

También encontré una solución similar con este DAX, omitiendo por completo la tabla de búsqueda METRIC:

DIVIDIR( [Actual PNL] , Calcular ([Actual PNL], filtro (ALLSELECTED (EIW), EIW[LPD Profit Loss Line]= «VENTAS NETAS CONSOLIDADAS (NG)»)), 0)

Anónimo

En respuesta a Alba

@Alba

Lo siento, he entendido mal.

PNL real = suma (EIW[Actual])

EIW es una tabla de hechos con el diseño de muestra: período, métrica (PNL), valor (real) ….

Deja un comentario

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