Fórmula de precios escalonados

Un usuario Pregunto ✅

TylerPeplinski

Hola,

Estoy tratando de encontrar una fórmula que me diga si el precio escalonado tiene sentido. Por ejemplo, un número de pieza con la cantidad más baja debe tener el precio más alto y la cantidad más alta debe tener el precio más bajo. Sé cómo hacer esto en Excel, pero no puedo resolverlo en BI. En Excel, ordeno los datos por número de pieza y luego por cantidad. Entonces la fórmula es = SI (Número de pieza = Número de pieza, SI (Precio propuesto de menor cantidad> = Precio propuesto de mayor cantidad, VERDADERO, FALSO), FALSO). He pegado mi hoja de Excel y Power BI. Déjame saber si esto es posible.

TylerPeplinski_0-1631823461727.png

TylerPeplinski_1-1631823741335.png

Greg_Deckler

En respuesta a TylerPeplinski

@TylerPeplinski Vea si esto es lo que está buscando:

Column = 
    VAR __Item = [Item]
    VAR __ProposedPrice = [Proposed Price]
    VAR __Qty = [Min Qty]
    VAR __MinQty = MINX(FILTER('Table12',[Item]=__Item && [Min Qty]<__Qty),[Min Qty])
    VAR __ProposedMinQtyPrice = MAXX(FILTER('Table12',[Item]=__Item && [Min Qty]=__MinQty),[Proposed Price])
RETURN
    IF(ISBLANK(__MinQty),FALSE(),IF(__ProposedPrice > __ProposedMinQtyPrice ,TRUE(),FALSE()))

Hola @TylerPeplinski,

Estos son los pasos que puede seguir:

1. Mediante consulta de energía – Añadir columna Columna de índice: desde 1.

vyangliumsft_0-1632288602098.png

2. Cree una columna calculada.

Column =
var _rank1=CALCULATE(SUM('Table'[Current Price]),FILTER(ALL('Table'),'Table'[Item]=EARLIER('Table'[Item])&&'Table'[Index]=EARLIER('Table'[Index])))
var _rank2=CALCULATE(SUM('Table'[Current Price]),FILTER(ALL('Table'),'Table'[Item]=EARLIER('Table'[Item])&&'Table'[Index]=EARLIER('Table'[Index])+1))
var _Item1=CALCULATE(SUM('Table'[Item]),FILTER(ALL('Table'),'Table'[Item]=EARLIER('Table'[Item])&&'Table'[Index]=EARLIER('Table'[Index])))
var _Item2=CALCULATE(SUM('Table'[Item]),FILTER(ALL('Table'),'Table'[Item]=EARLIER('Table'[Item])&&'Table'[Index]=EARLIER('Table'[Index])+1))
return
IF(
    _Item1=_Item2,
    IF(
        _rank2>_rank1,TRUE(),FALSE()),FALSE())

3. Resultado:

vyangliumsft_1-1632288602101.png

Atentamente,

Liu Yang

Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente

TylerPeplinski

En respuesta a v-yangliu-msft

@ v-yangliu-msft: no creo que esto funcione porque el elemento debe estar en texto, de modo que los ceros iniciales en el número de pieza no desaparezcan.

Greg_Deckler

@TylerPeplinski Es difícil de decir, ¿tal vez una variación del MTBF? Sería más fácil si publicara datos de muestra y resultados esperados. Disculpe, tiene problemas para seguir, ¿puede publicar datos de muestra como texto y como resultado esperado?
Realmente no hay suficiente información para continuar, primero verifique si su problema es un problema común que se enumera aquí: https://community.powerbi.com/t5/Community-Blog/Before-You-Post-Read-This/ba-p / 1116882

Además, consulte esta publicación sobre cómo obtener una respuesta rápida a su pregunta: https://community.powerbi.com/t5/Community-Blog/How-to-Get-Your-Question-Answered-Quickly/ba-p/38490

Las partes más importantes son:
1. Muestra datos como texto, usa la herramienta de tabla en la barra de edición
2. Resultado esperado de los datos de muestra
3. Explicación en palabras de cómo pasar del 1. al 2.

Vea mi artículo sobre Tiempo medio entre fallas (MTBF) que usa ANTES: http://community.powerbi.com/t5/Community-Blog/Mean-Time-Between-Failure-MTBF-and-Power-BI/ba-p / 3395 ….
El patrón básico es:
Columna =
VAR __Current = [Value]
VAR __PreviousDate = MAXX (FILTER (‘Tabla’, ‘Tabla'[Date] REGRESO
__Anterior actual

TylerPeplinski

En respuesta a Greg_Deckler

@Greg_Deckler – Greg gracias por la respuesta. Intenté mostrar en mis capturas de pantalla de arriba. He proporcionado más ejemplos en Excel. Necesito una fórmula en Power BI que me diga si el precio propuesto de una pieza es más alto para la cantidad mínima más baja. En mi captura de pantalla, puedes ver la fórmula que utilicé en Excel. Solo quiero un simple verdadero o falso, para poder ver dónde el precio escalonado no tiene sentido. Por ejemplo, en mi captura de pantalla, si la pieza 0129431 tenía un precio propuesto de $ 120 para la línea de cantidad mínima de 1, diría VERDADERO y eso nos haría decir que esto no es correcto porque si compra menos cantidad de una pieza, no debería No te saldrá más barato que si compraste más … Espero que esto ayude a aclararlo un poco más.

TylerPeplinski_0-1631883801930.png

Greg_Deckler

En respuesta a TylerPeplinski

@TylerPeplinski Sí, simplemente no me gusta escribir si es posible, por lo que los datos publicados como texto son mejores, ya que se pueden copiar y pegar.

TylerPeplinski

En respuesta a Greg_Deckler

@Greg_Deckler – ¿Funciona? Iba a adjuntarlo, pero no vi esa opción para empezar.

Articulo Precio actual Precio propuesto Cantidad mínima Fórmula
0129431 137.03760 152.11200 1 FALSO
0129431 123.33380 136.90080 5 FALSO
0200725 32.75370 35.04600 4 FALSO
0200725 31.77110 33.99460 80 FALSO
0200772 11.89440 12.72600 5 FALSO
0200772 8.32610 8.90820 25 FALSO
0200772 7.73140 8.27190 50 FALSO
0200773 14.52150 15.54000 5 FALSO
0200773 10.16510 10.87800 25 FALSO
0200773 9.43900 10.10100 50 FALSO
0209325 10.81710 12.00600 12 FALSO
0209325 10.40110 11.54420 120 FALSO
0209325 10.00110 11.10030 240 FALSO
0211480 7.13790 7.92600 12 FALSO
0211480 6.86340 7.62120 120 FALSO
0211480 6.59940 7.32810 360 FALSO
0211481 9.32400 10.35000 10 FALSO
0211481 8.96540 9.95190 100 FALSO
0211481 8.62060 9.56920 300 FALSO

Greg_Deckler

En respuesta a TylerPeplinski

@TylerPeplinski Vea si esto es lo que está buscando:

Column = 
    VAR __Item = [Item]
    VAR __ProposedPrice = [Proposed Price]
    VAR __Qty = [Min Qty]
    VAR __MinQty = MINX(FILTER('Table12',[Item]=__Item && [Min Qty]<__Qty),[Min Qty])
    VAR __ProposedMinQtyPrice = MAXX(FILTER('Table12',[Item]=__Item && [Min Qty]=__MinQty),[Proposed Price])
RETURN
    IF(ISBLANK(__MinQty),FALSE(),IF(__ProposedPrice > __ProposedMinQtyPrice ,TRUE(),FALSE()))

Deja un comentario

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