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

如何在Excel Power Query中提取街道地址中的方位词?

从地址列提取NE/NW/SE/SW方位词的Power Query解决方案

原公式错误原因

你的公式报错主要有三个问题:

  • List.ContainsAny([Address], {"NE", ...})用法错误:List.ContainsAny要求第一个参数是列表,但你直接传入了地址文本
  • Text.Select只能提取单个字符,无法识别"NE"这类双字符的方位词
  • List.Select同样需要第一个参数是列表,直接用文本不符合语法要求

正确实现方法

方法1:拆分地址为单词列表后筛选

这种方法适合方位词以独立单词存在的地址格式,逻辑直观:

  1. 把地址按空格拆成单词列表
  2. 筛选出属于目标方位词的项
  3. 返回匹配到的第一个方位词(无匹配则返回null)

自定义列公式:

= let
    addressWords = Text.Split([Address], " "),
    targetDirections = {"NE", "NW", "SE", "SW"},
    matchedItems = List.Select(addressWords, (word) => List.Contains(targetDirections, word))
in
    if List.Count(matchedItems) > 0 then matchedItems{0} else null

方法2:正则表达式匹配(更灵活高效)

如果遇到方位词可能和其他字符紧邻的极端情况(比如"NE123",不过大部分场景是独立单词),用正则可以精准匹配独立的方位词:

自定义列公式:

= let
    regexPattern = "\b(NE|NW|SE|SW)\b",
    matchedResult = Text.RegexMatch([Address], regexPattern)
in
    if matchedResult <> null then matchedResult{0} else null
  • \b表示单词边界,确保不会误匹配类似"NEXT"里的"NE"
  • (NE|NW|SE|SW)指定要匹配的四个方位词

内容的提问来源于stack exchange,提问作者Gregory Gene Conrad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 12:35:19