2013-04-22 63 views
3

我正在嘗試在ARRAYFORMULA()內使用INDEX()公式。作爲一個簡單的(無義的)例子,與在A柱4層的元件,我期望在B1進入下面陣列式將顯示從A所有四個元件B柱:如何在ARRAYFORMULA()中使用INDEX()?

=ARRAYFORMULA(INDEX($A$1:$A$4,ROW($A$1:$A$4))) 

然而,這僅僅填充字段B1,其值爲A1

當我在B1進入

=ARRAYFORMULA(ROW($A$1:$A$4)) 

,然後我看到1到4出現在B列所有數字。爲什麼我的第一個數組公式不像第二個那樣擴展相似?

回答

7

如果一個數組被用作參數之一,那麼INDEX函數就不支持數組上的「迭代」。沒有我知道的這個文件;它只是它是什麼。因此,第二個參數將始終默認爲數組的第一個元素,即ROW(A1)。

一個笨拙的解決方法,以達到您所需要依賴於現有的旁邊源數據*相鄰的第二列(雖然它是不重要的是什麼樣的價值觀實際上是在第二列):

=ArrayFormula(HLOOKUP(IF(ROW($A$1:$A$4);$A$1);$A$1:$B$4;ROW($A$1:$A$4);0))

或的確是這樣的:

=ArrayFormula(HLOOKUP(IF({3;2;4;1};$A$1);$A$1:$B$4;{3;2;4;1};0))


編輯2015-06-09

*這不再是最新版本的表格中的要求; HLOOKUP中的第二個參數可以是$ A $ 1:$ A $ 4。

相關問題