Excel OFFSET和FILTER组合公式错误



我想知道为什么不能将OFFSET与FILTER一起使用,因为它返回#VALUE错误。当我用带参数的OFFSET运行公式的部分时,它为什么会返回True或False,而不是返回我需要的数字列表。任何指导我方程式的建议都会有所帮助!

我有一个特定范围的数组要过滤掉,但一旦过滤可行,接下来就是在整个数组上使用OFFSET来查找相邻的非空值。

=FILTER( INDIRECT($A$6&"!$B$5:$Q$34") , 
( OFFSET( INDIRECT( $A$6&"!$C$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$C:$C" )) - 5 ) >= $A$9) *
( OFFSET( INDIRECT( $A$6&"!$C$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$C:$C" )) - 5 ) <= $A$10) * 
( OFFSET( INDIRECT( $A$6&"!$D$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$D:$D" )) - 5 ) >= $A$13) * 
( OFFSET( INDIRECT( $A$6&"!$D$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$D:$D" )) - 5 ) <= $A$14) * 
( OFFSET( INDIRECT( $A$6&"!$I$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$I:$I" )) - 5 ) >= $A$17) * 
( OFFSET( INDIRECT( $A$6&"!$I$5" ), 0, 0, COUNTA( INDIRECT( $A$6&"!$I:$I" )) - 5 ) <= $A$18), 
"None")

正如@JosWoolley所说,行数可能不相等。为了确保行数相同,应该在同一列上执行COUNTA。你可以利用LET做一次:

=LET(
rw, COUNTA(INDIRECT($A$6&"!B:B")),
FILTER(INDIRECT($A$6&"!B5:Q" & rw),
(INDIRECT($A$6&"!C5:C" & rw) >= $A$9) *
(INDIRECT($A$6&"!C5:C" & rw) <= $A$10) *
(INDIRECT($A$6&"!D5:D" & rw) >= $A$13) *
(INDIRECT($A$6&"!D5:D" & rw) <= $A$14) *
(INDIRECT($A$6&"!I5:I" & rw) >= $A$17) *
(INDIRECT($A$6&"!I5:I" & rw) <= $A$18),
"NONE"))

最新更新