【问题标题】:Expand RegexMatch To Test Against An Entire Range Of Cells - Google Sheets扩展 RegexMatch 以针对整个单元格范围进行测试 - Google 表格
【发布时间】:2021-10-05 01:55:22
【问题描述】:

在 Google 表格中,我实际上是在尝试制作一个通讯录,然后我想用它来确定谁与我的数据电子表格中的每一行相关联。

环顾四周,我似乎发现进行实际搜索的最佳方法是使用以下公式

=ARRAYFORMULA(IF(REGEXMATCH($C$2:C, 'Address Book'!$A$2:A), 'Address Book'!$A$2:B ))

所以我对这个公式的解释是,对于 C 列的每一行,如果它包含地址簿表 A 列中的任何值,则显示相关的 A 列和 B 列地址簿表的行。

但是,我认为问题实际上在于它只查看地址簿表的一行,因为该公式仅在地址簿记录和数据记录在各自的工作表上使用相同的行号时才有效。如何扩展此公式以确保它检查地址簿表 A 列中的所有值?

编辑:我意识到我并不清楚细胞的实际工作方式。例如,在我的数据表的 C 列中,每个单元格将如下所示:

My Video Title - Joe Bloggs - ACME Co

然后在我的地址簿表的 A 和 B 列中,我只列出了姓名和电子邮件,然后我想对照上述内容进行检查

Joe Bloggs  joebloggs@
Jon Smith   jonsmith@

然后我基本上想检查地址簿表中的 Joe Bloggs 或 Jon Smith 或任何其他名称是否在我的数据表的 C 列的每一行中,如果是则获取相关行的 A 列和 B 列来自地址簿表

【问题讨论】:

  • 有什么理由需要正则表达式?

标签: arrays regex if-statement google-sheets vlookup


【解决方案1】:

在第 2 行尝试:

=INDEX(IFNA(VLOOKUP(C2:C, Address Book'!A2:B, 2, 0)))

更新:

=INDEX(IFNA(VLOOKUP(REGEXEXTRACT(C2:C, 
 TEXTJOIN("|", 1, 'Address Book'!A2:A)), 'Address Book'!A2:B, 2, 0)))

【讨论】:

  • 不,那没用,但我意识到也许我没有很好地解释我拥有的数据
  • 所以要清楚,我的数据电子表格中的 C 列和 A 列永远不可能完全相同(这是我认为你的公式正在检测的),因为 C 列前面总是有一个标题它。所以我使用 REGEXMATCH 的原因只是为了检查 A 列中的任何名称是否在 C 列的每个单元格中的任何位置使用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-02-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-14
相关资源
最近更新 更多