如何在Excel查询表中按特定模式拆分列并返回指定结果?
Excel Power Query 按「数字. 」规则拆分列的解决方案
核心思路
用Power Query的正则匹配功能识别开头带「数字. 」格式的行,拆分出序号和内容;不匹配的行统一设序号为1,保留原内容,确保源表更新后自动同步处理。
具体操作步骤
- 打开Power Query编辑器,选中目标数据表。
- 点击顶部菜单栏「添加列」→「自定义列」。
- 在自定义列对话框中,粘贴以下M代码(把
[你的列名]替换成实际列名):
= let originalText = [你的列名], regexMatch = Text.RegexMatch(originalText, "^(\d+)\. (.*)$") in if List.Count(regexMatch) = 2 then [序号 = Number.From(regexMatch{0}), 内容 = regexMatch{1}] else [序号 = 1, 内容 = originalText]
- 点击「确定」后,自定义列会生成包含两个字段的记录,点击列标题右侧的展开图标,选择展开成独立两列即可。
代码说明
Text.RegexMatch(originalText, "^(\d+)\. (.*)$"):通过正则匹配字符串开头的数字序列、点号和空格,将匹配到的数字与后续内容存入列表。^限定开头位置,\d+匹配1个及以上数字,\.匹配点号,(.*)匹配剩余所有文本。- 条件判断:若匹配结果有2个元素(符合「数字. 」格式),则提取数字转为数值类型做序号,剩余内容作为文本;否则序号设为1,内容保留原文本。
内容的提问来源于stack exchange,提问作者jajangjaras
相关产品推荐
相关产品推荐

