我有一个这样的数据集:
合同 | 合同延期 | 开始日期 | 合同结束日期 | 购买金额 | 新ID合约 | 新购买金额 |
---|---|---|---|---|---|---|
ID 1 | 没有 | 2023年1月1日 | 2023年1月5日 | 1000 | ID 1、ID 2、ID 3 | 1600 |
ID 2 | ID 1 | 2023年1月3日 | 2023年1月5日 | 500 | ID 1、ID 2、ID 3 | 1600 |
ID 3 | ID 2 | 2023年1月4日 | 2023年1月5日 | 100 | ID 1、ID 2、ID 3 | 1600 |
ID 4 | 不 | 2023年1月1日 | 2023年1月7日 | 2000 | ID 4、ID 5 | 2250 |
ID 5 | ID 4 | 2023年1月3日 | 2023年1月7日 | 250 | ID 4、ID 5 | 2250 |
对于每个合同 ID,都有购买的 SMS 总数(购买金额)。 每个合同都可以通过增加购买的短信数量来延长。我的目标是计算“新 ID 合同”和“新购买金额”列。
例如:合约 ID 3 是合约 ID 2 的扩展,而合约 ID 2 又是 id 1 的扩展。因此,这三个合约的总和为 1600(1000+500+100)。 当“合同延期”填写“否”时,表示相关合同不是另一份合同的延期。当填充时,会显示扩展合约的 ID
所以我应该计算“新购买金额”列中的共享合同的总和以及“新 ID 合同”中的共享合同 ID
我不知道如何设置代码,所以我没有尝试展示。我希望能有一个解决方案。
非常感谢
我们可以利用 dax 中的“父子函数”来帮助解决这种情况。
了解 DAX 中父子层次结构的函数。
按顺序创建以下计算列(总共 4 个)。
// Need this one to replace "No" in [Contract Extension]
Parent Contract =
IF([Contract Extension] = "No", BLANK(), [Contract Extension])
// Need this for the PATH
Contract Path =
PATH( Contract[Contract], Contract[Parent Contract] )
New Amount Purchased =
var p1 = PATHITEM([Contract Path], 1)
return CALCULATE(
SUM([Amount Purchased]),
ALL(Contract),
PATHCONTAINS(Contract[Contract Path], p1)
)
New ID Contract =
var pMax = CALCULATE(
MAX([Contract Path]),
ALL(Contract),
PATHCONTAINS(Contract[Contract Path], p1)
)
return SUBSTITUTE(pMax, "|", ", ")