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.
Solved! Go to Solution.
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
)
)
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
)
)