インデックスマッチ内で名前付き範囲を使用する

インデックスマッチ内で名前付き範囲を使用する

名前付き範囲 (DATA_DUMP_GROCERY) があり、そこからインデックス マッチを使用して値を取得しようとしています。式は次のとおりです。

 =INDEX(DATA_DUMP_GROCERY,MATCH(Confectionery!$B$15,DATA_DUMP_GROCERY,0),4)

ご覧のとおり、私は Index と Match を一緒に使用する場合と同じように、数字を使用してどの列を使用するかを指定しようとしています。ただし、これは機能せず、#N/A エラーが発生します。

配列内の特定の行の値を引き出すにはどうすればよいですか?

答え1

INDEX/MATCHデータのテーブルである名前付き範囲を問題なく使用できます。 2 次元 (テーブル) のデータが使用場所で許容される場合。

ただし、2 つの異なる場所で使用するため、2 つの異なるものが必要になります。

INDEX()数式の実際の部分では、まずすべての基準となる範囲を指定する必要があります。DATA_DUMP_GROCERYその範囲を指定します。これで問題ありません。DATA_DUMP_GROCERYおそらく 2D のデータ テーブルなので、これがまさに の最も一般的な使用法にINDEX()必要なものであり、関数は満足しています。

ただし、その後、同じ名前付き範囲を指定しますMATCH()が、検査する列は 1 つだけです。(実際には、複数の列にする方法はありますが、あなたが行った方法ではありません。) 複数の列を持つデータ テーブルを指定しているため、失敗します。この失敗により、全体が失敗します。

INDEX()insideを使用してMATCH()名前付き範囲から 1 つの列を抽出し、それを に提示することMATCH()も、単に 1 つの列のアドレス参照を入力することも、そのアドレスを保持する別の名前付き範囲を作成することもできます。

私の好みは非常に単純なものです。最初の考えは、INDEX()inside を使用することMATCH()です。

=INDEX(DATA_DUMP_GROCERY,MATCH(Confectionery!$B$15,
       INDEX( DATA_DUMP_GROCERY,,1  ,  0),4)

パラメータはINDEX()おそらく単純でわかりやすいので簡単ですね。すべての行と、参照データがある列番号 (上記の数式の列 1) が必要なので、ROW には何も必要ありません。

そうすれば、すべてうまく機能するでしょう。

関連情報