Power BI中Power Query M的IF语句AND逻辑不生效问题
Power Query M查询AND条件失效问题解决
问题出在
Date.WeekOfYear的周数计算逻辑上:这个函数依赖系统区域设置的周起始日,部分12月底的日期可能被识别为下一年的第1周,导致>=52的条件不触发,最终整个AND组合条件失效。直接改用ISO标准周数计算函数
Date.IsoWeekOfYear,它采用周一为周起始日,周数规则更统一,能准确识别年末的第52/53周。同时把当前年份单独提取出来,让逻辑更清晰:
修正后的代码:
let CurrentYear = Date.Year(DateTime.LocalNow()) in if Date.IsoWeekOfYear([firstloadingdate]) >= 52 and Date.Year([firstloadingdate]) = CurrentYear then Number.ToText([LoadingYearC]-1) & "," & [LoadingWeek] else Number.ToText([LoadingYearC]) & "," & [LoadingWeek]
- 可以先加个验证列确认问题:新增自定义列查看原周数和ISO周数的差异,就能明确是不是周数计算导致的条件不成立:
OriginalWeek = Date.WeekOfYear([firstloadingdate]), IsoWeek = Date.IsoWeekOfYear([firstloadingdate])
内容的提问来源于stack exchange,提问作者georgiev
相关产品推荐
相关产品推荐

