Power Query中非标准日期格式的三种转换方法
轻松处理英式、自定义分隔符等文本日期
在使用Power Query导入数据时,日期字段常以文本形式存在,需手动转换为标准日期类型。对于常见的“年月日”或“月日年”格式,可直接通过字段类型图标进行转换。但遇到英式“日月年”或其他非标准格式(如以星号分隔)时,直接转换会导致错误或结果不准确。
例如,将“09/08/2022”按默认设置转换,系统误判为“月日年”,结果变为“2022年9月8日”,实际应为“2022年8月9日”。当日期中的“日”大于12时,系统无法识别,返回错误。为此,提供以下三种解决方案:
1. 修改区域设置
点击字段左侧类型图标,选择“使用区域设置”,在弹出窗口中将数据类型设为“日期”,区域选择“英语(英国)”。此方法适用于明确知道日期所属地区的情况。
2. 使用Date.FromText函数的Culture参数
通过添加自定义列,调用M函数Date.FromText,并指定Culture参数为"en-GB",适用于英式日期格式:
Date.FromText([日期],"en-GB")
3. 使用Date.FromText函数的Format参数(推荐)
该方法无需知晓日期所属区域,只需根据文本规律构造格式模板。例如,“日/月/年”可写为:
Date.FromText([日期],[Format="d/M/yyyy"])
注意:月份必须用大写M,小写m表示分钟。该方法灵活性强,可处理非常规分隔符,如“日*月*年”:
Date.FromText([日期],[Format="d*M*yyyy"])
甚至适用于无分隔符的八位数字日期,只需调整格式表达式即可。
综上,推荐掌握第三种方法,利用Date.FromText函数的Format参数,可高效应对各类非标准文本日期转换需求。

