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

Google Sheets中ArrayFormula多IF规则匹配返回全部结果问题

问题

在Google Sheets中需创建公式,基于rules工作表的规则评估主工作表每一行,返回所有符合规则的结果(而非仅首个匹配项)。每条规则需满足全部条件时,返回rules!G3:G对应的结果。

Rules工作表结构

Rule IDAccount ConditionDescription ContainsCategory ConditionMin AmountMax AmountResult
2Account1任意任意任意任意Test1
1任意Rent任意5002200Rent
3Account2Entertainment任意任意任意Test2
4Account2Utilities任意任意任意Test3

主工作表结构

UniqueIDDateAccountDescriptionCategoryAmountAccountKey
ID12024/1/1Account1房租支付Rent-1500Account1
ID22024/1/2Account2其他支付Other-100Account2
ID32024/1/3Account1其他支付Another Category-200Account1
ID42024/1/4Account2其他支付Different Category-300Account2
ID52024/1/5Account2娱乐服务Yet Another Category-400Account2
ID62024/1/5Account2城市公用事业费Yet Another Category-401Account2

期望输出

Result
Rent
Test2
Test1
Test2
Test2

额外需求

公式需支持模糊匹配:检查主表Description是否包含rules表Description Contains列的关键词(非完全匹配)。


解决方案

1. 单列返回所有匹配结果(每个结果占一行)

在主表空白列(如H2)输入以下公式,自动生成所有匹配结果:

=TOCOL(MAP(A2:A7, LAMBDA(id, 
  FILTER(rules!G$3:G, 
    (rules!B$3:B="任意")+(rules!B$3:B=XLOOKUP(id, A:A, C:C))>0,
    (rules!C$3:C="任意")+ISNUMBER(SEARCH(rules!C$3:C, XLOOKUP(id, A:A, D:D)))>0,
    (rules!D$3:D="任意")+(rules!D$3:D=XLOOKUP(id, A:A, E:E))>0,
    (rules!E$3:E="任意")+(ABS(XLOOKUP(id, A:A, F:F))>=rules!E$3:E)>0,
    (rules!F$3:F="任意")+(ABS(XLOOKUP(id, A:A, F:F))<=rules!F$3:F)>0
  )
)), 3)

2. 同一单元格拼接多个结果(逗号分隔)

若希望主表每行的所有匹配结果在同一单元格,使用此公式:

=ARRAYFORMULA(IF(A2:A="", "", 
  TEXTJOIN(", ", TRUE, 
    FILTER(rules!G$3:G, 
      (rules!B$3:B="任意")+(rules!B$3:B=C2:C)>0,
      (rules!C$3:C="任意")+ISNUMBER(SEARCH(rules!C$3:C, D2:D))>0,
      (rules!D$3:D="任意")+(rules!D$3:D=E2:E)>0,
      (rules!E$3:E="任意")+(ABS(F2:F)>=rules!E$3:E)>0,
      (rules!F$3:F="任意")+(ABS(F2:F)<=rules!F$3:F)>0
    )
  )
))

公式关键逻辑

  • FILTER:核心筛选函数,逐条验证规则条件:
    • (条件A)+(条件B)>0:实现逻辑或,满足任意一个条件即通过(处理"任意"规则)
    • ISNUMBER(SEARCH(...)):实现模糊匹配,检测主表描述是否包含规则中的关键词
    • ABS(金额):将负数金额转为绝对值,匹配规则中的Min/Max范围
  • MAP+TOCOL:遍历主表每行,收集所有匹配结果并展平为单列
  • TEXTJOIN:将同一行的多个匹配结果用指定分隔符拼接

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 17:49:51