我有一個命名範圍(DATA_DUMP_GROCERY),我試圖使用索引匹配從中提取值。這是我的公式:
=INDEX(DATA_DUMP_GROCERY,MATCH(Confectionery!$B$15,DATA_DUMP_GROCERY,0),4)
正如您所看到的,我正在嘗試指定與數字一起使用的列,就像我通常在同時使用“索引”和“匹配”時所做的那樣。但這不起作用,我收到#N/A 錯誤。
如何提取數組中特定行的值?
答案1
INDEX/MATCH
完全能夠使用作為資料表的命名範圍。二維(表格)資料在您使用的地方是否可以接受。
但是,您在兩個不同的地方使用它,因此需要兩個不同的東西。
INDEX()
在公式的實際部分中,您首先需要給它一個範圍作為一切的基礎。你確實是這樣,DATA_DUMP_GROCERY
在那個範圍內。完全沒問題。DATA_DUMP_GROCERY
大概是一個二維資料表,所以這正是最常見的使用INDEX()
需求和函數所高興的。
但是,您隨後給出相同的命名範圍,MATCH()
但它需要單個列來檢查。 (實際上,有多種方法可以使多列,但不像您那樣。)由於您給了它一個包含多個列的資料表,所以它失敗了。這種失敗會導致整件事情失敗。
您可以使用INDEX()
insideMATCH()
從命名範圍中提取單一列並將其呈現給MATCH()
,或者您可以簡單地鍵入單一列位址引用,甚至建立另一個儲存該位址的命名範圍。
我的偏好是一個非常簡單的:第一個想法,使用INDEX()
inside MATCH()
:
=INDEX(DATA_DUMP_GROCERY,MATCH(Confectionery!$B$15,
INDEX( DATA_DUMP_GROCERY,,1 , 0),4)
很簡單,因為參數INDEX()
可能簡單明了,是嗎? ROW 不需要任何內容,因為您需要所有行,以及查找資料所在的任何列號(上面公式中的第 1 列)。
那麼一切都會非常順利。