基于其他字段计算同列日期差的DAX(Power BI)问题
基于Field2标识计算Field1日期差的解决方案
一、Excel 操作步骤
- 先通过匹配函数获取对应标识的日期:
- 获取标识
b的日期:=VLOOKUP("b", $A:$B, 2, FALSE) - 获取标识
c的日期:=VLOOKUP("c", $A:$B, 2, FALSE)
- 获取标识
- 用
DATEDIF计算日期间隔(按天为例):
完整公式:=DATEDIF(VLOOKUP("b", $A:$B, 2, FALSE), VLOOKUP("c", $A:$B, 2, FALSE), "d")- 参数说明:第三个参数
"d"表示按天计算,替换为"m"是按月、"y"是按年。
- 参数说明:第三个参数
- 若需批量计算多组标识差,可先将所有标识列出来,再用上述公式批量引用。
二、SQL 实现代码
假设数据表名为target_table,字段为Field2(分组标识)、Field1(日期字段),计算c-b的日期差:
SELECT CONCAT(t2.Field2, '-', t1.Field2) AS difference_label, DATEDIFF(t2.Field1, t1.Field1) AS date_diff_days FROM target_table t1 JOIN target_table t2 WHERE t1.Field2 = 'b' AND t2.Field2 = 'c';
如果要计算所有两两标识的日期差,可修改WHERE条件为t2.Field2 != t1.Field2,并添加排序避免重复计算。
内容的提问来源于stack exchange,提问作者Xid Xid
相关产品推荐
相关产品推荐

