为什么这个函数会抛出过滤错误?

Why is this function throwing a filter error?

我正在使用 Google Spreadsheet,如果满足某些条件,它会从另一个 sheet 中提取数据。好吧,至少那是它应该做的——相反,我得到 "No matches are found in FILTER evaluation."

函数为:

=filter(importRange("https://docs.google.com/spreadsheets/d/1Z_7hl4uEc-an2rOUgOd_zYhCeb_QNIZopahJqBYooRg/edit#gid=0", "Sheet1!R2:R5000"), SEARCH( A3 , index(importRange("https://docs.google.com/spreadsheets/d/1Z_7hl4uEc-an2rOUgOd_zYhCeb_QNIZopahJqBYooRg/edit#gid=0", "Sheet1!V2:V5000")) ) )

我已经尝试使用 index() 函数的各种行和列参数。我还尝试将 * 添加到 A3 中搜索词的开头和结尾,以防出现问题。我也试过在 A3 中的值周围加上引号。

我错过了什么?样本点差 sheet 是 here.

我目前找不到参考,但有一个已知问题与最新版本的表格要求您明确允许通过 ImportRange 访问另一个 sheet 相关。问题是,当嵌套 ImportRange 时,它​​不会提供允许访问的机会 - 它只会 return 公式中的 #REF 错误。

解决方法是先单独调用 ImportRange(您可以使用较小的范围):

=ImportRange("https://docs.google.com/spreadsheets/d/abcdefg","Sheet1!R2")

然后 "Allow access" 出现提示时;然后将其嵌套在您的公式中。

顺便说一句,建议尽可能少地使用 ImportRange,因此在您的情况下,最好使用 QUERY:

=QUERY(ImportRange("https://docs.google.com/spreadsheets/d/abcdefg","Sheet1!R2:V5000"),"select Col1 where Col5 contains '"&A3&"'",0)

您可以通过让一个页面只从您要嵌套引用的每个 sheet 中拉出一个单元格来解决 IMPORTRANGE 问题。一旦获得许可,该许可将在整个 sheet.

期间有效。