Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!

Reply
draj
Frequent Visitor

Uso de FIFO en el cálculo

¡Hola a todos!

Tengo un problema único que me gustaría resolver y definitivamente agradecería cualquier ayuda. Tengo un ejemplo de datos como el siguiente:

Cálculo del coste medio 1

Screenshot 2020-05-28 at 9.03.19 AM.png

Cálculo de costo medio 2

Screenshot 2020-05-28 at 9.03.28 AM.png

Aquí tengo 2 ejemplos de cálculo de costo promedio, sin embargo necesito lograr el cálculo de costo promedio 2.

En este ejemplo, el coste total se Unit_Cost_Price * Cantidad + Cuota (que es la columna más a la derecha)

La forma fácil de calcular el coste medio sería resumir el coste total y dividirlo por la suma de la cantidad (que es el cálculo 1)

Sin embargo, necesito realizar el cálculo usando FIFO, donde se ignoran los 2 primeros artículos (los artículos se ordenan por fecha de más antiguo a más reciente) como la cantidad se cancela entre sí, y el coste medio se calcula después.

Sin duda agradecería cualquier sugerencia sobre lograr esto en powerbi

7 REPLIES 7
Greg_Deckler
Super User
Super User

@draj - Desea buscar min/Max https://community.powerbi.com/t5/Quick-Measures-Gallery/Lookup-Min-Max/m-p/985814#M434


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler No estoy buscando basado en la fecha máxima. Supongamos que hay 2 más después de la tercera entrada, y la cantidad es todo positivo. El objetivo es calcular el promedio basado en estas 3 entradas (1 actual + 2 nuevas entradas)

@draj - Eso ciertamente no se encontró en el post original y todavía no estoy seguro de que estoy claro sobre el requisito. Entonces, ¿estás diciendo que quieres alguna entrada después de la última entrada negativa? Todavía parece que Lookup Min/ Max para mí si ese es el caso. Busque la fecha MAXX de todos los valores negativos. Utilícelo en el filtro para filtrar las filas después de esa fecha. A continuación, puede hacer el SUMX adecuado, etc. en esas filas FILTER'ed.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

@Greg_Deckler Gracias por sus comentarios. Déjame ir con más detalle.

Presentaré una llamada de columna que ejecute QTY, lo que tendría más sentido a medida que explica el concepto de FIFO

Screenshot 2020-05-28 at 10.18.21 AM.png

Echemos un vistazo a estas 3 entradas, que se han ordenado por fecha (antiguo a nuevo). Tenemos una columna de cantidad en ejecución. En este momento, la forma correcta de calcular el coste medio sería ignorar los primeros 2 artículos (ya que la cantidad se cancela entre sí) y solo considerar la última entrada.

Ahora echemos un vistazo a un escenario donde se agrega otra entrada, aumentando la cantidad:

Screenshot 2020-05-28 at 10.18.32 AM.png

Así que aquí tenemos el artículo 4, y la cantidad de ejecución es ahora 2.000.000. El coste medio se calcula ahora como (Coste total de 3 y 4)/(última cantidad en ejecución).

Puede ver que es más dinámico que el cálculo promedio habitual (SUM del coste total / SUMA de la cantidad)

Hola, @draj

Según su descripción, creé datos para reproducir su escenario. El archivo pbix se adjunta al final.

Mesa:

a1.png

Puede crear columnas y medidas calculadas como se indica a continuación.

Calculated column:
Running Qty = 
var _date = 'Table'[Date]
var _lastdate =
CALCULATE(
    MAX('Table'[Date]),
    FILTER(
        ALL('Table'),
        'Table'[Date]<_date&&
        'Table'[Quantity]<0
        
    )
)
var _startdate = 
CALCULATE(
    MIN('Table'[Date]),
    FILTER(
        ALL('Table'),
        'Table'[Date]>_lastdate
    )
)
return
IF(
    ISBLANK(_lastdate),
    CALCULATE(
        SUM('Table'[Quantity]),
        FILTER(
            ALL('Table'),
            'Table'[Date]<=EARLIER('Table'[Date])
        )
    ),
    CALCULATE(
        SUM('Table'[Quantity]),
        FILTER(
            ALL('Table'),
            'Table'[Date]>=_startdate&&
            'Table'[Date]<=EARLIER('Table'[Date])
        )
    )
) 
Running Cost = 
var _date = 'Table'[Date]
var _lastdate =
CALCULATE(
    MAX('Table'[Date]),
    FILTER(
        ALL('Table'),
        'Table'[Date]<_date&&
        'Table'[Quantity]<0
        
    )
)
var _startdate = 
CALCULATE(
    MIN('Table'[Date]),
    FILTER(
        ALL('Table'),
        'Table'[Date]>_lastdate
    )
)
return
IF(
    ISBLANK(_lastdate),
    CALCULATE(
        SUM('Table'[Total Cost]),
        FILTER(
            ALL('Table'),
            'Table'[Date]<=EARLIER('Table'[Date])
        )
    ),
    CALCULATE(
        SUM('Table'[Total Cost]),
        FILTER(
            ALL('Table'),
            'Table'[Date]>=_startdate&&
            'Table'[Date]<=EARLIER('Table'[Date])
        )
    )
) 

Measure:
avg 1 = SUM('Table'[Total Cost])/SUM('Table'[Quantity])
avg 2 = 
var _maxdate = 
CALCULATE(
    MAX('Table'[Date]),
    ALL('Table')
)
return
DIVIDE(
    LOOKUPVALUE('Table'[Running Cost],'Table'[Date],_maxdate),
    LOOKUPVALUE('Table'[Running Qty],'Table'[Date],_maxdate)
)

Resultado:

a2.png

Saludos

Allan

Si este post ayuda,entonces considere Aceptarlo como la solución para ayudar a los otros miembros a encontrarlo más rápidamente.

@v-alq-msft ¡¡Muchas gracias!!

@draj: ¿por qué no usar solo la medida rápida total en ejecución integrada en Power BI para crear esa columna? Y probablemente otra columna total en ejecución para El costo total. Entonces realmente es una situación de búsqueda mínima / máxima, ya que su última fecha tendrá los totales que desea.


@ me in replies or I'll lose your thread!!!
Instead of a Kudo, please vote for this idea
Become an expert!: Enterprise DNA
External Tools: MSHGQM
YouTube Channel!: Microsoft Hates Greg
Latest book!:
Mastering Power BI 2nd Edition

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
April AMA free

Microsoft Fabric AMA Livestream

Join us Tuesday, April 09, 9:00 – 10:00 AM PST for a live, expert-led Q&A session on all things Microsoft Fabric!

March Fabric Community Update

Fabric Community Update - March 2024

Find out what's new and trending in the Fabric Community.

Top Solution Authors