powerbi - 如果该月的第一天取该月最后一天的值 - Power BI
问题描述
我需要更正数量,即如果当天是可用数据集的第一天,则取上个月该数据集中最后一天的数量。
我正在处理:
1. 在可用数据集中添加了 2 列,我在其中指示月份的开始;在第二列中,我在可用数据集中表示该月的最后一天。
- 然后,我创建了一个度量,其想法是检查 [date] 是否等于 [start_date]。如果是,我想从 [prev_month_end] 返回 [quantity]。否则,返回当前日期的 [数量]。我觉得我很接近,但没有得到想要的结果.po
start_date = STARTOFMONTH('tbl'[date])
prev_month_end= LASTDATE ( PREVIOUSMONTH ( 'tbl'[date] ))
quantity_corrected =
var tdate = 'tbl'[prev_month_end]
var warehouse = 'tbl'[warehouse_code]
var prod_cat = 'tbl'[product_category]
var prod_typ = 'tbl'[product_type]
return
if(
'tbl'[date]='tbl'[start_date],
CALCULATE(
FIRSTNONBLANK('tbl'[quantity],1),
FILTER(
ALL('tbl'),
'tbl'[product_category]=prod_cat &&
'tbl'[prev_month_end] = tdate &&
'tbl'[warehouse_code]=warehouse &&
'tbl'[product_type]=prod_typ
)
),
'tbl'[quantity]
)
解决方案
不完全确定我理解这一点,但我认为您只需更改 FILTER 函数中的一个参数。
另外,我添加了第二个嵌套的 IF 语句(带有temp
变量),否则第一行将[quantity_corected]
变为空白。
quantity_corrected =
var tdate = 'tbl'[prev_month_end]
var warehouse = 'tbl'[warehouse_code]
var prod_cat = 'tbl'[prod_category]
var prod_typ = 'tbl'[product_type]
return
if(
'tbl'[date]='tbl'[start_date];
var temp =
CALCULATE(
FIRSTNONBLANK('tbl'[quantity];1);
FILTER(
ALL('tbl');
'tbl'[prod_category]=prod_cat &&
'tbl'[date] = tdate && // <-- Changed from [prev_month_end]
'tbl'[warehouse_code]=warehouse &&
'tbl'[product_type]=prod_typ
)
)
return
IF(
temp <> BLANK();
temp;
'tbl'[quantity]
);
'tbl'[quantity]
)
结果表: