Power BI中yyyymm格式文本列转日期报错,求问题原因排查
Power BI中yyyymm文本列转日期报错的原因及解决方法
常见报错原因
- 列中存在非标准格式值:比如空单元格、包含字母/特殊字符的内容(如
2021AB)、长度不足6位的数字(如20218),这些值无法被日期解析规则识别 - 直接使用"更改类型"转日期的局限性:Power BI默认的日期识别逻辑更适配带分隔符的日期格式(如
yyyy-mm或yyyy/mm),纯数字的yyyymm文本无法被自动识别为有效日期格式
解决步骤(Power Query编辑器)
- 进入Power Query编辑器(点击"数据"选项卡→"转换数据")
- 选中目标列
Calendar Year/Month,添加自定义列:
在自定义列公式框中输入:
这个公式会把Date.FromText(Text.Start([Calendar Year/Month], 4) & "-" & Text.End([Calendar Year/Month], 2))202108拆分为2021和08,拼接成2021-08后再转换为日期(默认取当月第一天,比如2021/8/1) - 若要直接修改原列,可先拆分年和月:
选中列后,点击"转换"选项卡→"提取"→分别提取首4个字符(年)和尾2个字符(月),再用公式合并为日期:Date.From(#date(Value.FromText([年列名]), Value.FromText([月列名]), 1)) - 处理异常值:如果存在无效值,可添加条件判断过滤:
if Text.Length([Calendar Year/Month]) = 6 and Value.Is(Value.FromText([Calendar Year/Month]), type number) then Date.FromText(Text.Start([Calendar Year/Month], 4) & "-" & Text.End([Calendar Year/Month], 2)) else null
内容的提问来源于stack exchange,提问作者user19351102
相关产品推荐
相关产品推荐

