google-sheets - 查找其他范围内的匹配行
问题描述
我正在尝试创建一个包含基于一组类别的类别和来自另一个范围的匹配/正则表达式字符串的列。我的例子是:
我在这里找不到任何已回答的问题,可以向我解释如何做到这一点,如果可以的话。所以在这里问是否有人可以帮助或指出我可能错过的答案!
类别或数据范围都不是静态行数。我想要一个公式,它可以简单地产生这样的东西:
非常感谢任何帮助!
解决方案
尝试:
=ARRAYFORMULA(IFNA(REGEXEXTRACT(E2:E, "["&TEXTJOIN( , 1, B2:B)&"]")))
更新1:
=INDEX(IFNA(REGEXEXTRACT(E2:E, "["&TEXTJOIN( , 1,
REGEXREPLACE(C2:C, "[\.\*]", ))&"]")))
或者:
=INDEX(IFNA(VLOOKUP(IFNA(REGEXEXTRACT(E2:E, "["&TEXTJOIN( , 1,
REGEXREPLACE(C2:C, "[\.\*]", ))&"]")), {
REGEXREPLACE(C2:C, "[\.\*]", ), B2:B}, 2, 0)))
更新 2
首先,学习你的正则表达式:https ://github.com/google/re2/wiki/Syntax
将您的 C 列更改为:
.*(A).*
.*(B).*
.*(C).*
然后使用:
=ARRAYFORMULA(IFNA(VLOOKUP(TRIM(FLATTEN(QUERY(TRANSPOSE(
IFNA(REGEXEXTRACT(E3:E, TEXTJOIN("|", 1, C3:C)))),,9^9))), {
IFNA(REGEXEXTRACT(C3:C, TEXTJOIN("|", 1, TRIM(FLATTEN(QUERY(TRANSPOSE(
IFNA(REGEXEXTRACT(E3:E, TEXTJOIN("|", 1, C3:C)))),,9^9)))))), B3:B}, 2, 0)))
或更短:
=INDEX(IFNA(VLOOKUP(
IFNA(REGEXEXTRACT(E3:E, "["&TEXTJOIN("|", 1, C3:C)&"]")), {
IFNA(REGEXEXTRACT(C3:C, TEXTJOIN("|", 1,
IFNA(REGEXEXTRACT(E3:E, "["&TEXTJOIN("|", 1, C3:C)&"]"))))), B3:B}, 2, 0)))
推荐阅读
- c# - WPF XAML 返回 PositiveInfinity 作为 DesiredSize 并带有活力的扭曲面板
- wordpress - 我们如何通过帖子 ID 而不是屏幕 ID 获取管理员当前屏幕?
- angular - 仅在 Angular 编译器准备好后“loadURL”电子 Angular 项目
- android - 令牌 android.os.BinderProxy@e4f4f2b 无效;您的活动正在运行吗?
- javascript - 无法使用 jQuery 更改 HTML(本地存储)
- java - 用两种可能的实现定义 bean
- c - 使用 char 和 int 时输出错误
- testing - 在进行远程测试(qrcode 等)时有没有办法控制暴露的端口?
- android - 如何在 Android 中添加静态键盘?
- javascript - 对子多个值求和并将结果保存到 Javascript 中的 n-ary 树中的父级