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

如何拆分机器搜索字符串并匹配数据库?(Microsoft 365环境)

机器部件搜索字符串解析解决方案(Microsoft 365环境)

规则明确

机器部件字符串定义

  • &XXX:机器明确包含部件XXX
  • -XXX:机器明确不包含部件XXX
  • 字符串内部件顺序不影响含义,未提及的部件属于「未指定」状态

搜索字符串定义

  • / 表示OR逻辑,分割多个独立的搜索条件组,满足任意一组即匹配成功
  • 单个条件组内的&/-表示AND逻辑,需同时满足组内所有明确要求:
    • 条件组要求&XXX时,机器必须明确标注&XXX(不能未指定)
    • 条件组要求-XXX时,机器必须明确标注-XXX(不能未指定)

Microsoft 365实现方案

方案1:Excel公式实现(适合小数据集)

假设机器部件字符串在A列,搜索字符串固定在B1单元格,在C2单元格输入以下公式(Microsoft 365可直接回车):

=OR(
    BYCOL(TEXTSPLIT(B1,"/"),LAMBDA(cond,
        AND(
            ISNUMBER(SEARCH("&"&TEXTBEFORE(TEXTSPLIT(SUBSTITUTE(cond,"-","&-"),"&"),"-",,1),A2)),
            ISNUMBER(SEARCH("-"&TEXTAFTER(TEXTSPLIT(SUBSTITUTE(cond,"-","&-"),"&"),"-",,1),A2))
        )
    ))
)

公式逻辑:

  1. 按/拆分搜索条件组
  2. 对每个条件组,拆分出「必须包含」(&开头)和「必须不包含」(-开头)的部件
  3. 检查机器字符串是否同时包含所有要求的&XXX和-XXX
  4. 只要有一个条件组满足,返回TRUE,否则FALSE

方案2:Power Query实现(适合大数据集)

  1. 将机器数据导入Power Query,添加自定义列,输入以下M语言代码(替换SearchString为目标搜索字符串):
let
    SearchString = "&XXX-YYY/&YYY&ZZZ",
    ConditionGroups = Text.Split(SearchString, "/"),
    CheckCondition = (cond as text, machine as text) as logical =>
        let
            Parts = List.RemoveItems(Text.Split(Text.Replace(cond, "-", "&-"), "&"), {""}),
            RequiredPresent = List.Select(Parts, each Text.StartsWith(_, "&")),
            RequiredAbsent = List.Select(Parts, each Text.StartsWith(_, "-")),
            AllPresentMatch = List.AllTrue(List.Transform(RequiredPresent, each Text.Contains(machine, _))),
            AllAbsentMatch = List.AllTrue(List.Transform(RequiredAbsent, each Text.Contains(machine, _))),
            Result = AllPresentMatch and AllAbsentMatch
        in
            Result,
    CheckAllGroups = List.AnyTrue(List.Transform(ConditionGroups, each CheckCondition(_, [Machine])))
in
    CheckAllGroups
  1. 加载回Excel即可得到批量匹配结果

示例验证

机器部件字符串匹配结果说明
&XXX-YYY&ZZZTRUE满足第一组条件:包含XXX、不包含YYY
&XXX-YYY-ZZZTRUE满足第一组条件:包含XXX、不包含YYY
&XXX&YYY&ZZZTRUE满足第二组条件:包含YYY、包含ZZZ
&XXX&ZZZFALSE两组条件均不满足:第一组要求不包含YYY(机器未指定),第二组要求包含YYY(机器未指定)
&ZZZ&YYYTRUE满足第二组条件:包含YYY、包含ZZZ(顺序不影响)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 03:45:35