求Tableau中计算日期在当年的天数序号的有效公式
解决Tableau中计算日期当年天数序号的问题
你需要的是一个能自动按年份重置的当年天数序号计算字段,以下是正确的公式:
DATEDIFF('day', DATETRUNC('year', [Date: ReportDate]), [Date: ReportDate]) + 1
公式说明:
DATETRUNC('year', [Date: ReportDate]):将报表日期截断至当年1月1日,比如输入2024-03-15会返回2024-01-01,输入2023-12-31会返回2023-01-01,实现跨年自动切换年初的效果。DATEDIFF('day', ..., [Date: ReportDate]):计算当前日期与当年1月1日的天数差,1月1日当天的差值为0。+ 1:将差值转换为序号,让1月1日显示为第1天,以此类推。
为什么之前的方法不行?
- 格式设置:仅修改日期的显示格式,本质没有计算“当年第几天”的逻辑,因此会每月重置为1。
- 旧公式
DATEDIFF('day',DATE('1900-01-01'), [Date: ReportDate]) + 1:以固定的1900年为起点,会累计所有天数,无法实现跨年重置。
验证示例:
| Date: ReportDate | 计算结果 |
|---|---|
| 2024-01-01 | 1 |
| 2024-02-01 | 32 |
| 2023-12-31 | 365 |
| 2024-12-31 | 366 |
内容的提问来源于stack exchange,提问作者Data Double O
相关产品推荐
相关产品推荐

