我有下面的数据集(表1 ),我想创建一个新的计算列,以便每个客户每月只有最后一个余额数量。
最后一栏( EOM平衡数量)说明了我的需求。
-----------------------------------------------------
| Table 1 |
----------------------------------------------------- -------------------
| Date | Customer | Type | Qty | Balance Qty | | EOM Balance Qty |
|=============|==========|======|=====|=============| |=================|
| 1/Jan/2019 | Alan | Buy | 15 | 15 | | |
|-------------|----------|------|-----|-------------| |-----------------|
| 2/Jan/2019 | Alan | Use | 10 | 5 | | 5 |
|-------------|----------|------|-----|-------------| |-----------------|
| 2/Feb/2019 | Alan | Buy | 30 | 35 | | |
|-------------|----------|------|-----|-------------| |-----------------|
| 3/Feb/2019 | Alan | Use | 10 | 25 | | 25 |
|-------------|----------|------|-----|-------------| |-----------------|
| 3/Mar/2019 | Alan | Use | 15 | 10 | | 10 |
|-------------|----------|------|-----|-------------| |-----------------|
| 4/Apr/2019 | Alan | Buy | 100 | 110 | | |
|-------------|----------|------|-----|-------------| |-----------------|
| 5/Apr/2019 | Alan | Use | 35 | 75 | | 75 |
|-------------|----------|------|-----|-------------| |-----------------|
| 1/Jan/2019 | Bob | Buy | 10 | 10 | | |
|-------------|----------|------|-----|-------------| |-----------------|
| 2/Jan/2019 | Bob | Use | 10 | 0 | | 0 |
|-------------|----------|------|-----|-------------| |-----------------|
| 20/Jan/2019 | Charlie | Buy | 100 | 100 | | 100 |
|-------------|----------|------|-----|-------------| |-----------------|
| 1/Feb/2019 | Charlie | Use | 20 | 80 | | 80 |
|-------------|----------|------|-----|-------------| |-----------------|
| 5/Apr/2019 | Charlie | Use | 10 | 70 | | |
|-------------|----------|------|-----|-------------| |-----------------|
| 30/Apr/2019 | Charlie | Use | 55 | 15 | | 15 |
----------------------------------------------------- -------------------
我曾尝试寻找类似的解决方案,但我得到的结案是this。但是,将其添加为Power Pivot中的计算列或度量值时出现错误。
我也尝试过使用ENDOFMONTH
函数,但是某些日期未按预期返回结果。
= CALCULATE ( SUM ( Table1[closing_balance_qty] ), ENDOFMONTH ( Table1[Date] ) )
非常感谢您的帮助。
答案 0 :(得分:0)
根据评论进行了更新:
我修改了您的新源数据,如下所示:
现在,我们将使用列“ Date-Time”代替上一列“ Date”,其中包含日期和时间。
您还需要在源文件中添加“年月”字段,而不是将其作为计算列。要求您的数据源提供者为您添加它,或者使用PowerQuery。
接下来,创建一个计算列:
EOM Balance Qty =
VAR Last_Date_Time =
CALCULATE (
MAX ( Table1[Date-Time] ),
ALLEXCEPT ( Table1, Table1[Customer], Table1[Year-Month] )
)
RETURN
IF ( Table1[Date-Time] = Last_Date_Time, CALCULATE(SUM ( Table1[Balance Qty] )))
结果:
工作原理: