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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

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!:
The Definitive Guide to Power Query (M)

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!:
The Definitive Guide to Power Query (M)

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!:
The Definitive Guide to Power Query (M)

DAX is easy, CALCULATE makes DAX hard...

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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