roex
¡Hola equipo!
Me gustaría solicitar su ayuda con la fórmula para obtener el valor mínimo de la medida.
Como resultado final, me gustaría calcular la diferencia del precio mínimo de orden de compra de todas las empresas.
En Excel es fácil y se parece a:
Enlace de pantalla de Excel
Sin embargo, en PowerBI me limité a obtener ese valor mínimo de 0,8333 para todas las empresas.
Mis resultados por error y ensayo son los siguientes y nada de ellos es correcto.
La visualización tiene 3 Slices, que se deben tener en cuenta: Período, Bandera de reutilización y SKU genérico
Enlace de pantalla de PowerBI
Precio de orden de compra =
DIVIDIR(
SUMA(‘Datos_17_21_tabla'[PO Amount]),
SUMA(‘Datos_17_21_tabla'[PO Qty])
)
Mis ensayos con valor mínimo:
mín1 =
minx(VALORES(Data_17_21_table),[PO Price])
mín2 =
MARTA(
‘Datos_17_21_tabla’,
CALCULAR([PO Price])
)
min3 =
MARTA(
KEEPFILTERS(VALUES(‘Data_17_21_table'[FinYear])),
CALCULAR([PO Price])
)
Mín4 =
MARTA(
KEEPFILTERS(VALUES(‘Data_17_21_table'[BU])),
CALCULAR([PO Price])
)
Min5 = minX(Data_17_21_table, DIVIDE(
SUMA(‘Datos_17_21_tabla'[PO Amount]),
SUMA(‘Datos_17_21_tabla'[PO Qty])
))
Min6 = CALCULAR(minx(VALORES(Data_17_21_table),[PO Price]), ALLEXCEPT(Data_17_21_table, Data_17_21_table[Reuse Flag], Datos_17_21_tabla[Period], Datos_17_21_tabla[Generic Sku]))
Min7 = CALCULAR(minx(VALORES(Data_17_21_table),[PO Price]), TODOS (Data_17_21_table))
Min8 = CALCULAR(minx(VALORES(Data_17_21_table),[PO Price]), TODOS LOS FILTROS CRUZADOS (Data_17_21_table))
Min9 =
CALCULAR(MINX(VALORES(Data_17_21_table),[PO Price]), ALLEXCEPT (Data_17_21_table, Data_17_21_table[Generic Sku], Datos_17_21_tabla[Period], Datos_17_21_tabla[Reuse Flag]))
¿Podría sugerir otro enfoque?
¡Gracias de antemano!
roex
daxer-todopoderoso
En respuesta a roex
[Diff from MIN] =
// ISINSCOPE guarantees that the visual
// you use the measure in uses T[Company]
// for grouping. Please DO NOT use this
// measure in other measures, especially
// those that include any explicit iterator.
// THIS IS A TOP-LEVEL MEASURE.
IF( ISINSCOPE( T[Company] ),
var vMinPOPrice =
MINX(
ALLSELECTED( T[Company] ),
[PO Price]
)
var vResult =
// This first DIVIDE makes sure BLANK
// is returned when vMinPOPrice is 0.
DIVIDE( vMinPOPrice, vMinPOPrice )
* ( DIVIDE( [PO Price], vMinPOPrice ) - 1 )
RETURN
vResult
)
Anónimo
Hola @rhoex,
Creo que ha definido «M_Final_1 = DIVIDE ([PO Price],CALCULAR(MIN(Data_17_21_table[PO Price]),TODOS(Tabla_17_21_datos)),0)-1″
[PO Price]
como medida ¿Puede confirmar que ha utilizado el siguiente patrón?
M_Final_1 {Nombre de la medida requerida}= DIVIDE({Medida de la suma del precio de la orden de compra (o cualquier otra agregación que se ajuste a sus requisitos},CALCULATE(MIN({Especifique la columna de precio de la orden de compra aquí}),ALL(Data_17_21_table)),0)-1
roex
Me olvidé de mencionar y tal vez esto es importante. La pantalla de PowerBI ya muestra visualización en Matrix. Esta no es una tabla de Data. En Data_17_21_table tengo muchas más transacciones y en Matrix estoy resumiendo esto por empresa
daxer-todopoderoso
En respuesta a roex
[Diff from MIN] =
// ISINSCOPE guarantees that the visual
// you use the measure in uses T[Company]
// for grouping. Please DO NOT use this
// measure in other measures, especially
// those that include any explicit iterator.
// THIS IS A TOP-LEVEL MEASURE.
IF( ISINSCOPE( T[Company] ),
var vMinPOPrice =
MINX(
ALLSELECTED( T[Company] ),
[PO Price]
)
var vResult =
// This first DIVIDE makes sure BLANK
// is returned when vMinPOPrice is 0.
DIVIDE( vMinPOPrice, vMinPOPrice )
* ( DIVIDE( [PO Price], vMinPOPrice ) - 1 )
RETURN
vResult
)
roex
En respuesta a daxer-todopoderoso
¡Gracias @daxer-almighty!
Está funcionando según lo previsto. 👍
roex
Anónimo
Hola ,
Reemplace la columna con medidas. También use allexcept para eliminar el efecto de todos los filtros excepto los que desea aplicar (debe escribir las tres columnas de filtro en todos excepto).
roex
En respuesta a Anónimo
Gracias @Anonimo
¿Quiso decir algo como esto?
M_Final_1 = DIVIDIR([PO Price],CALCULAR(MIN(Data_17_21_table[PO Price]),TODOS(Tabla_17_21_datos)),0)-1
Tengo información: la columna ‘Precio de la orden de compra’ en la tabla ‘Data_17_21_table’ no se puede encontrar o no se puede usar en esta expresión.
y con allexcept, el mismo error
M_Final_2 = DIVIDIR([PO Price],CALCULAR(MIN(Data_17_21_table[PO Price])ALLEXCEPT(Data_17_21_table, Data_17_21_table[Generic Sku], Datos_17_21_tabla[Period], Datos_17_21_tabla[Reuse Flag])),0)-1
Así que entiendo por medida que debo usar la función MINX, y:
M_Final_3 = DIVIDIR([PO Price],CALCULAR(MINX(VALORES(Data_17_21_table),[PO Price]), ALLEXCEPT (Data_17_21_table, Data_17_21_table[Generic Sku], Datos_17_21_tabla[Period], Datos_17_21_tabla[Reuse Flag])),0)-1
Pero esto devuelve valores no como yo esperaría. En realidad, es un enfoque similar al de Min9 anterior, por lo que no se toma un valor mínimo adecuado 😞