You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Power Query定位表格中指定字符串的行与列位置?

在Power Query中定位指定字符串的行/列位置(适用于行数可变的表格)

操作步骤:

  1. 导入表格到Power Query

    • 打开Excel,选中目标表格数据,点击「数据」选项卡 → 「从表格/区域」,进入Power Query编辑器。
  2. 添加行索引列

    • 在编辑器中,点击「添加列」选项卡 → 「索引列」→ 「从1开始」(行号和表格实际显示行对应,若需从0开始选「从0开始」)。
  3. 编写自定义查找逻辑

    • 点击「主页」→「高级编辑器」,替换原有代码为以下M语言(注意替换代码里的表格名称和目标字符串):
let
    源 = Excel.CurrentWorkbook(){[Name="表1"]}[Content], // 把"表1"改成你的表格名称
    添加索引 = Table.AddIndexColumn(源, "行号", 1, 1, Int64.Type),
    查找目标字符串 = (目标文本 as text) as table =>
        let
            遍历行 = Table.AddColumn(添加索引, "匹配信息", (行) =>
                let
                    遍历列 = List.Select(Record.FieldNames(行), each _ <> "行号"),
                    查找匹配 = List.Select(遍历列, each Record.Field(行, _) = 目标文本),
                    生成结果 = if List.Count(查找匹配) > 0 then 
                        [行号=行[行号], 列名=查找匹配{0}, 列索引=List.PositionOf(Record.FieldNames(源), 查找匹配{0})+1] 
                        else null
                in
                    生成结果
            ),
            筛选匹配行 = Table.SelectRows(遍历行, each [匹配信息] <> null),
            提取位置信息 = Table.ExpandRecordColumn(筛选匹配行, "匹配信息", {"行号", "列名", "列索引"}, {"目标行号", "目标列名", "目标列索引"})
        in
            提取位置信息,
    结果 = 查找目标字符串("Hello") // 替换成你要找的目标字符串
in
    结果
  1. 获取结果
    • 点击「关闭并上载」,生成的新表格会显示匹配到的目标行号、目标列名和目标列索引(列索引从1开始,和Excel列号一致)。

额外说明:

  • 列数可变也适用:代码会自动遍历所有列,无需手动指定列名
  • 多匹配处理:如果目标字符串在表格中出现多次,会返回所有匹配的位置
  • 大小写匹配:如需不区分大小写查找,把代码里的Record.Field(行, _) = 目标文本改成Text.Lower(Record.Field(行, _)) = Text.Lower(目标文本)

内容的提问来源于stack exchange,提问作者Nico

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 21:37:29