在 FILTER 中使用 INDIRECT 时出错

问题描述 投票:0回答:2

我已经为此苦恼了好几个小时,我看到了几个带有间接的示例,有些甚至有包含间接的过滤器,这正是我想要做的,但出于我不知道的原因,它不起作用。

我正在尝试执行以下操作:

=FILTER('Form Responses 1'!D2:F, ('Form Responses 1'!D2:D=TODAY())+(ISBLANK('Form Responses 1'!E2:E)=FALSE()))

但是我想将其分为两部分,一个单元格(F1)将包含第二个参数:

('Form Responses 1'!D2:D=TODAY())+(ISBLANK('Form Responses 1'!E2:E)=FALSE())

第二个单元格将包含使用它的整个公式,如下所示:

=FILTER('Form Responses 1'!D2:F, INDIRECT(F1))

我得到的是一个错误:

“FILTER 的范围大小不匹配。预期行数:116。列数:1。实际行数:1,列数:1。”

有什么想法吗?我附上了一张照片以进一步解释。 []

顺便说一句,奇怪的语言是希伯来语

google-sheets
2个回答
1
投票

简短回答

Google 表格电子表格引擎无法将文本作为公式进行计算。相关问题:有没有办法评估存储在单元格中的公式?

扩展答案

问题出在

=FILTER('Form Responses 1'!D2:F, INDIRECT(F3))
上,根据屏幕截图,是因为 F3 是一个空白单元格,所以
INDIRECT(F3)
返回错误而不是所需的参数。

看起来您想使用包含以下内容的 F1,而不是 F3:

('Form Responses 1'!D2:D=TODAY())+(ISBLANK('Form Responses 1'!E2:E)=FALSE())

...但是上面的文本不是 INDIRECT 的正确参数,因为它需要单元格或范围地址形式的文本。

值得注意的是,Google Sheets 电子表格引擎没有将文本计算为公式的功能。 INDIRECT 只能返回单元格或范围(多个单元格)引用。


0
投票

到 2024 年,这已经成为可能。例如,以下公式的筛选部分从单元格

A$2
中获取工作表名称,并将其与单元格
$V$2
中的单元格区域文本连接起来(例如,单元格中的文本可以是 !C4:C300)并使用间接获取该范围作为
=FILTER()
函数的第一个参数。对于第二个参数,我们在
W$4
中将工作表名称与
$U$2
中的范围文本串联起来作为条件参数。

=filter(indirect(A$2&$V$2),indirect(A$2&$U$2)=$A5)

这是一个更大函数的一部分,该函数正在查找过滤器数组中元素的最大值(也可用于间接)。

实际的公式如下所示(以防万一有帮助): =iferror(max(过滤器(间接(W$4&$V$2),间接(W$4&$U$2)=$A5)),0)+iferror(max(过滤器(间接(W$4&$W$2)) ,间接(W$4&$U$2)=$A5)),0)

希望这篇死灵帖子可以帮助一些可怜的灵魂在未来尝试解决这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.