regex - 具有多个关键字的Google表格匹配类别到字符串
问题描述
如何将D
具有 3 列关键字(columns A B C
)的类别列表(column)与字符串列表(column)匹配H
并获得 column 的结果I
?
我在考虑 vlookup 并尝试了类似的方法,但看起来它不起作用:
=vlookup("*"&A2:A&"*"&B2:B&"*"&C2:C&"*",H2:H,1)
我也在考虑QUERY
,但我认为也不能逐行匹配。
任何帮助表示赞赏!
电子表格:https ://docs.google.com/spreadsheets/d/1AHT5d4KkZ49csitkICUd7ANwjWMZXk9GAZA_5pVZlrs/edit#gid=0
例如:
解决方案
=ARRAYFORMULA(IFERROR(REGEXEXTRACT(
IFERROR(VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,1), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0))&
IFERROR(VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,2), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0))&
IFERROR(VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,3), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0)),
TEXTJOIN("|", 1, UNIQUE(IFERROR({
VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,1), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0);
VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,2), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0);
VLOOKUP(INDEX(IFERROR(REGEXEXTRACT(IFERROR(SPLIT(H2:H, "-")),
TEXTJOIN("|", 1, A2:C))),,3), {{A2:A;B2:B;C2:C},{D2:D;D2:D;D2:D}}, 2, 0)}))))))
推荐阅读
- ruby-on-rails - 在 ruby 助手中需要 javascript 位置对象数据
- android - Statement.executeInsert() 返回值
- css - 尝试实现 CSS 动画
- sql - 在 SSDT 发布上删除或清空表
- ios - iOS 游戏使用哪些点和像素?
- c# - 无法使用共享同一端口的多个项目启动进程 dotnet.exe
- python-3.x - 使用 apscheduler 和 webbrowser 模块获得“狂热”徽章的道德规范
- arrays - 将 UInt64 数组转换为 BitVector
- java - toggle.setchecked 在 onTextChanged 事件中
- ansible - 重复的 Ansible 角色仅适用于绝对参数