【问题标题】:Using regexmatch & filter inside arrayformula (Google Sheets)在数组公式中使用正则表达式匹配和过滤器(谷歌表格)
【发布时间】:2019-06-01 01:55:40
【问题描述】:

我有一个功能性的 Google 表格公式,我尝试对其进行修改,以便作为数组公式执行,这样我就不再需要在每个单元格中复制粘贴。你能帮忙吗?

我尝试通常的方法:

=arrayformula(if(len(A2:a)>0,iferror(transpose(filter(Dashboard!B:B, regexmatch(Dashboard!c:c, d2:d))),"-"),"")) 

但不工作(我认为是从整列的第一行重复结果)。

简单版:

=if(len(A2)>0,iferror(transpose(filter(Dashboard!B:B, regexmatch(Dashboard!c:c, d2))),"-"),"")

数组版本:....?

【问题讨论】:

  • 感谢您的编辑,player02。以下是电子表格示例版本的链接:docs.google.com/spreadsheets/d/…
  • 我认为问题是我在“ARRAYFORMULA”中使用了“过滤器”。这在 Google 表格中是不可能的吗?

标签: regex google-sheets google-sheets-formula array-formulas gs-vlookup


【解决方案1】:
=ARRAYFORMULA(IF(LEN(A2:A), IFERROR(VLOOKUP(REGEXEXTRACT(D2:D, TRANSPOSE(SUBSTITUTE(
 TRIM(QUERY(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(SPLIT(Dashboard!C2:C, ",")))
 ,,999^99)),,999^99)), " ", "|"))), TRIM(SPLIT(TRANSPOSE(SPLIT(QUERY(TRANSPOSE(QUERY(
 TRANSPOSE(IF(IFERROR(SPLIT(Dashboard!C2:C, ","))<>"", "♠"&IFERROR(
 SPLIT(Dashboard!C2:C, ","))&"♦"&Dashboard!B2:B, ))
 ,,999^99)),,999^99), "♠")), "♦")), 2, 0), "-"), ))

【讨论】:

  • 谢谢你,player0。你是个巫师!如果我在两张纸上的“电子邮件”字段中使用相同的分隔符,它会对公式的速度产生影响吗? (现在,我在带有数组的表格中有“,”和“|”)。
  • 不会有太大区别。 regexextract 需要有 | 分隔符/运算符,但它甚至可以虚拟插入,这样你就可以拥有任何你想要的分隔符
猜你喜欢
  • 2021-12-01
  • 1970-01-01
  • 2019-10-06
  • 2022-10-14
  • 1970-01-01
  • 1970-01-01
  • 2017-12-21
  • 2013-04-14
  • 2021-08-16
相关资源
最近更新 更多