Excel 动态数组 - 可能的错误?
Excel Dynamic Arrays - possible bug?
我在单元格 B1:F1 中输入了 5 个数字。如果我写下面的公式:
= MIN( OFFSET( A1, 0, {1,3,5} ) )
那么它正确地return是单元格 B1、D1、F1 中最小的数字。
但是,如果我摆脱 MIN() 并制作公式:
= OFFSET( A1, 0, {1,3,5} )
我希望它将 return 3 个数字作为动态数组。它 return 一个大小正确的动态数组,但在 3 个单元格中的每个单元格中它都给我 #VALUE!。
这似乎是一个错误——我知道动态数组是相对较新的——但有人会有相反的想法吗?谢谢
最好只使用 INDEX
,因为它不易变。
=INDEX(B1:F1,,{1,3,5})
编辑:
对于更通用的版本,请考虑:
=INDEX(1:1,,{2, 4, 6})
或
=INDEX(1:1,,{1, 3, 5}+1)
没关系!
它现在有效,但我没有改变任何东西。这一定是由于 OFFSET 是一个易变函数这一事实造成的...
我在单元格 B1:F1 中输入了 5 个数字。如果我写下面的公式:
= MIN( OFFSET( A1, 0, {1,3,5} ) )
那么它正确地return是单元格 B1、D1、F1 中最小的数字。 但是,如果我摆脱 MIN() 并制作公式:
= OFFSET( A1, 0, {1,3,5} )
我希望它将 return 3 个数字作为动态数组。它 return 一个大小正确的动态数组,但在 3 个单元格中的每个单元格中它都给我 #VALUE!。 这似乎是一个错误——我知道动态数组是相对较新的——但有人会有相反的想法吗?谢谢
最好只使用 INDEX
,因为它不易变。
=INDEX(B1:F1,,{1,3,5})
编辑:
对于更通用的版本,请考虑:
=INDEX(1:1,,{2, 4, 6})
或
=INDEX(1:1,,{1, 3, 5}+1)
没关系! 它现在有效,但我没有改变任何东西。这一定是由于 OFFSET 是一个易变函数这一事实造成的...