Power BI中如何将年月格式文本转换为十进制数值?
Power BI将"Xy Ym"格式文本转为十进制年份的方法
方法一:Power Query编辑器(适合批量预处理数据)
- 导入数据后,选中目标文本列,点击转换选项卡 → 拆分列 → 按分隔符,选择「空格」作为分隔符,将列拆分为「年份段」和「月份段」两列。
- 处理年份列:选中「年份段」列,点击转换 → 提取 → 提取文本之前,输入
y,得到纯数字的年份值,再把列类型改为小数。 - 处理月份列:选中「月份段」列,同样操作,提取
m之前的文本,得到纯数字的月份值,列类型改为小数。 - 添加计算列:点击添加列 → 自定义列,输入公式:
[年份段] + [月份段]/12,生成十进制年份列。 - 最后可删除拆分出的临时列,关闭并应用修改到数据模型。
方法二:DAX计算列(适合直接在数据模型中生成)
在数据视图中,点击建模 → 新建列,替换[你的目标列名]后粘贴以下公式:
十进制年份 = VAR 年份值 = VALUE(LEFT([你的目标列名], FIND("y", [你的目标列名])-1)) VAR 月份值 = VALUE(MID([你的目标列名], FIND(" ", [你的目标列名])+1, FIND("m", [你的目标列名])-FIND(" ", [你的目标列名])-1)) RETURN 年份值 + 月份值/12
如果存在格式异常的单元格(比如缺年份/月份),可以用IFERROR处理错误值:
十进制年份 = VAR 年份值 = IFERROR(VALUE(LEFT([你的目标列名], FIND("y", [你的目标列名])-1)), 0) VAR 月份值 = IFERROR(VALUE(MID([你的目标列名], FIND(" ", [你的目标列名])+1, FIND("m", [你的目标列名])-FIND(" ", [你的目标列名])-1)), 0) RETURN 年份值 + 月份值/12
内容的提问来源于stack exchange,提问作者Satyam Kumar
相关产品推荐
相关产品推荐

