在索引匹配中使用命名範圍

在索引匹配中使用命名範圍

我有一個命名範圍(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 列)。

那麼一切都會非常順利。

相關內容