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
Syndicate_Admin
Administrator
Administrator

Cálculo de stock fantasma (stock >0 y ventas =0)

Hola
Tengo una configuración básica de mesa:
tblProducts (ProductID)
tblStores (StoreID)
tblData (StoreID, ProductID, Date, SOH, Sales)
tblCalendar (Fecha)

Estoy tratando de contar la línea (ProductID y StoreID). Que tienen más de cero SOH para la última fecha de datos y cero ventas en más de 50 días.

1 ACCEPTED SOLUTION
Syndicate_Admin
Administrator
Administrator

Finalmente pude hacer que este cálculo funcionara, usando CROSSJOIN. Otros métodos eran demasiado lentos.
Aquí está la medida, espero que sea capaz de ayudar a alguien más.

Phantom Stock = 
CALCULATE (
    SUMX (
        CROSSJOIN (
            VALUES ( tblProducts[ArticleCode] ),
            VALUES ( tblStores[StoreCode] )
        ),
        IF (
            [Stock on Hand Latest Date] > 0
                && [Volume Sales Total (X Days)] <= 0,
            [Stock on Hand Latest Date],
            BLANK ()
        )
    )
)


Aquí están las 2 medidas de apoyo.

Stock on Hand Latest Date = 
VAR _MaxDate = CALCULATE(MAX(tblCalendar[Date]),ALL(tblCalendar))
RETURN
    CALCULATE (
        [Stock on Hand Total],
        FILTER (
            tblCalendar,
            tblCalendar[Date] = _MaxDate
        )
    )


La variable llamada _Days, es solo una lista de días en semanas, (1 semana = 7, 2 semanas = 14, etc.)

Volume Sales Total (X Days) = 
VAR _CurrentDate = CALCULATE(MAX(tblCalendar[Date]),ALL(tblCalendar))
VAR _Days = max(sptWeeks[Days])
VAR _StartDate = _CurrentDate - _Days
RETURN
CALCULATE(
    [Volume Sales Total],
    FILTER(
        tblCalendar,
        tblCalendar[Date] > _StartDate && tblCalendar[Date] <= _CurrentDate
    )
)

View solution in original post

1 REPLY 1
Syndicate_Admin
Administrator
Administrator

Finalmente pude hacer que este cálculo funcionara, usando CROSSJOIN. Otros métodos eran demasiado lentos.
Aquí está la medida, espero que sea capaz de ayudar a alguien más.

Phantom Stock = 
CALCULATE (
    SUMX (
        CROSSJOIN (
            VALUES ( tblProducts[ArticleCode] ),
            VALUES ( tblStores[StoreCode] )
        ),
        IF (
            [Stock on Hand Latest Date] > 0
                && [Volume Sales Total (X Days)] <= 0,
            [Stock on Hand Latest Date],
            BLANK ()
        )
    )
)


Aquí están las 2 medidas de apoyo.

Stock on Hand Latest Date = 
VAR _MaxDate = CALCULATE(MAX(tblCalendar[Date]),ALL(tblCalendar))
RETURN
    CALCULATE (
        [Stock on Hand Total],
        FILTER (
            tblCalendar,
            tblCalendar[Date] = _MaxDate
        )
    )


La variable llamada _Days, es solo una lista de días en semanas, (1 semana = 7, 2 semanas = 14, etc.)

Volume Sales Total (X Days) = 
VAR _CurrentDate = CALCULATE(MAX(tblCalendar[Date]),ALL(tblCalendar))
VAR _Days = max(sptWeeks[Days])
VAR _StartDate = _CurrentDate - _Days
RETURN
CALCULATE(
    [Volume Sales Total],
    FILTER(
        tblCalendar,
        tblCalendar[Date] > _StartDate && tblCalendar[Date] <= _CurrentDate
    )
)

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.