PowerBI中日期格式设置与M查询筛选报错问题排查
PowerBI MQuery日期筛选报错的原因及修正方案
错误原因
- 你用
Date.ToText(_,"yyyy-MM-dd")把日期列转换成了文本类型,但后面却标注了type date,数据类型和转换结果不匹配,导致列类型混乱 - 筛选时,你拿文本类型的
[Datecolumn]和#Date(2023,01,01)生成的日期类型值做比较,不同类型的数据无法直接进行大小判断,从而触发报错
修正方案
方案一:保留日期类型(推荐)
日期的显示格式和底层数据类型是分离的,不需要把日期转成文本,只需设置显示格式即可,这样不影响后续的日期筛选计算:
- 用M代码完成筛选(保留日期类型):
#"FilteredRows" = Table.SelectRows(#"Source", each [Datecolumn] >= #date(2023, 1, 1))
- 在PowerBI界面设置显示格式:选中
Datecolumn列,切换到【建模】选项卡,在【格式】下拉框中选择yyyy-MM-dd格式即可。
方案二:转文本后筛选(不推荐)
如果一定要将日期转为文本格式,需要确保筛选条件也转为相同格式的文本,同时修正类型标注:
#"ChangeDateFormat" = Table.TransformColumns(#"Source", {{"Datecolumn", each Date.ToText(_,"yyyy-MM-dd"), type text}}), #"FilteredRows" = Table.SelectRows(#"ChangeDateFormat", each [Datecolumn] >= Date.ToText(#date(2023,1,1),"yyyy-MM-dd"))
内容的提问来源于stack exchange,提问作者Hrithik Rawat
相关产品推荐
相关产品推荐

