Excel で特殊な検索式を作成するのに問題があります。
通常、私は VLOOKUP() を使用しますが、別の列で並べ替えられたテーブルから列内の数値を検索したいという落とし穴があります。Vlookup は、並べ替えられた列自体でのみ検索できます。
シナリオは次のとおりです。
- テーブルは列 B で昇順に並べ替えられます。
- 特定のパラメーター P について、上から下に向かって、そのパラメーター P 以上の最初の A 値を見つけたいと思います。
- 次に、関数は対応する B 値を返す必要があります。
表 (一部を除いて、完全な表ははるかに大きい):
A B
1 640 4.5
2 1600 7.0
3 640 7.5
4 1280 12.0
5 1920 16.5
6 2560 21.0
7 1600 19.8
8 3200 26.8
9 4800 33.8
たとえば、パラメータが 1100 だとすると、数式で 7.0 を返したいとします。これは、列 A を下方向に検索したときに 1100 以上の最初のエントリが 1600 であり、対応する B 値が 7.0 であるためです。
配列数式(「ctrl-shift-enter 数式」とも呼ばれます)で運試しをして、次のようなものを作成しました。
{=INDEX(table;
MATCH(MIN(IF(columnA-$C1>=0;columnA;FALSE));
IF(columnA-$C1>=0;columnA;FALSE);
0);
2)}
私のパラメータを含むC1 、範囲A1: B9、および列Aの範囲B1:B9
しかし、それは機能しません (上記の例では、MIN() 関数によって 1280 が選択されているため、12.0 が返されます)。
使用したくない解決策: テーブルを通過する VBA を書くことはできますが、それはしたくありません (迷惑な「マクロ警告」と、Excel on Mac が VBA をサポートしていないためです)。 )
手がかりはありますか?