求助:日期的计算

Power Pivot PBI初学 ⋅ 于 2024-06-05 15:30:39 ⋅ 最后回复由 PBI初学 2024-06-07 11:36:53 ⋅ 247 阅读

示例:如下图
file
当"年检年限"不为空时,"失效日期" 为"培训日期"加上"年检年限"所代表的年数的日期.
我写的DAX语句为:
失效日期 =
IF(
ISBLANK('培训信息'[年检年限]),
BLANK(),
DATEADD('培训信息'[培训日期], '培训信息'[年检年限], YEAR)
)
可是结果却是都是空的.
请大神指教,这到底哪里写错了.
多谢多谢:sparkles:

成为第一个点赞的人吧 :bowtie:
最佳答案
  • Tom
    2024-06-06 10:44:38

    DATEADD时间智能函数,对连续日期生效,你的日期不连续(比如2024/6/1,使用DATEADD返回前一年的日期,但是[培训日期]中没有2023/6/1,则最终返回结果为空),时间智能函数不理解原理千万不要乱用。
    DATEADD('培训信息'[培训日期], '培训信息'[年检年限], YEAR)
    建议改成
    DATE(YEAR([培训日期])+[年检年限],MONTH([培训日期]),DAY([培训日期]))

回复数量: 2
  • Tom
    2024-06-06 10:44:38

    DATEADD时间智能函数,对连续日期生效,你的日期不连续(比如2024/6/1,使用DATEADD返回前一年的日期,但是[培训日期]中没有2023/6/1,则最终返回结果为空),时间智能函数不理解原理千万不要乱用。
    DATEADD('培训信息'[培训日期], '培训信息'[年检年限], YEAR)
    建议改成
    DATE(YEAR([培训日期])+[年检年限],MONTH([培训日期]),DAY([培训日期]))

  • PBI初学 刚开始
    2024-06-07 11:36:53

    多谢回答!
    DATEADD确实不应该用在这里.....
    用了DATE这个函数,的确算出来了,但闰年的问题会出问题.最后我用了EDATE这个函数,貌似得出了我要的答案.
    失效日期2 =
    IF(
    ISBLANK('全部培训信息'[年检年限]),
    BLANK(),
    EDATE('全部培训信息'[培训日期],'全部培训信息'[年检年限]*12)
    )

    有点投机,但目前只找到了这个方法.

暂无评论~~
  • 请务必阅读并严格遵守《社区管理规范与使用说明》
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 发送表情,可用的 Emoji 见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板粘贴上传, 格式限制 - jpg, png, gif
  • 不支持上传附件,请尽可能用文字和图片将问题描述清楚,如实在需要上传附件,可上传到 共享网盘 后分享链接
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!
Ctrl+Enter