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
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
sí
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
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) ….