Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google sheets 使用范围上的子字符串进行Google工作表查找_Google Sheets_Range_Substring_Lookup - Fatal编程技术网

Google sheets 使用范围上的子字符串进行Google工作表查找

Google sheets 使用范围上的子字符串进行Google工作表查找,google-sheets,range,substring,lookup,Google Sheets,Range,Substring,Lookup,我正在尝试使用谷歌表单进行子字符串查找 当在查找字符串上应用子字符串时,我可以这样做: 但是,在将子字符串逻辑应用于范围时,我被卡住了: 有没有办法做到这一点? 注意:为了示例,我使用了过于简单的值,实际上搜索/范围值并不总是遵循[0-9][a-z][0-9]/[a-z]模式,因此从搜索中删除数字然后执行搜索不是我要寻找的解决方案。将以下公式放在B2中,然后需要将其复制下来(唉,我没有找到将ARRAYFORMULA应用于过滤器中的第二个范围的方法) 将以下公式放在B2中,然后需要将其复制下来

我正在尝试使用谷歌表单进行子字符串查找

当在查找字符串上应用子字符串时,我可以这样做:

但是,在将子字符串逻辑应用于范围时,我被卡住了:

有没有办法做到这一点?


注意:为了示例,我使用了过于简单的值,实际上
搜索/范围
值并不总是遵循
[0-9][a-z][0-9]/[a-z]
模式,因此从搜索中删除数字然后执行搜索不是我要寻找的解决方案。

将以下公式放在B2中,然后需要将其复制下来(唉,我没有找到将ARRAYFORMULA应用于过滤器中的第二个范围的方法)


将以下公式放在B2中,然后需要将其复制下来(唉,我没有找到将ARRAYFORMULA应用于过滤器中第二个范围的方法)

  • 查询以查找匹配的子字符串
  • text连接到连接匹配的子字符串(如果找到多个子字符串)
  • 查询以查找匹配的子字符串
  • text连接到连接匹配的子字符串(如果找到多个子字符串)

@ttarchala的答案很有效。如果您的范围包含多个匹配项,但只需要1,请使用
索引将其换行:

=INDEX(FILTER(C$2:C$4, regexmatch(A2, C$2:C$4)),1)
另一种方法是使用以下选项,允许范围内的值为正则表达式:

=REGEXEXTRACT(A2,JOIN("|",C$2:C$4))


例如,看看
3c3
由于
\b
单词边界而无法匹配
c\b
,而
c
却匹配了它。

@ttarchala的答案有效。如果您的范围包含多个匹配项,但只需要1,请使用
索引将其换行:

=INDEX(FILTER(C$2:C$4, regexmatch(A2, C$2:C$4)),1)
另一种方法是使用以下选项,允许范围内的值为正则表达式:

=REGEXEXTRACT(A2,JOIN("|",C$2:C$4))


例如,看看
3c3
由于
\b
单词边界而无法匹配
c\b
,而
c
却匹配了它。

这样做,找到了另一个解决方案(见我的答案)来支持范围值中的正则表达式。这样做,找到了另一个解决方案(见我的答案)为了支持values.works范围内的正则表达式,感谢显示
QUERY/TEXTJOIN
用例,可能在将来也会有用。感谢显示
QUERY/TEXTJOIN
用例,可能在将来会有用
=REGEXEXTRACT(A2,JOIN("|",C$2:C$4))