2つ以上の基準に一致する最初の行から値を返す式はありますか?たとえば、「列A=xかつ列B=yである最初の行から列Cを返します」。列Aと列Bを連結せずに実行したいと思います。
ありがとう。
2つ以上の基準に一致する最初の行から値を返す式はありますか?たとえば、「列A=xかつ列B=yである最初の行から列Cを返します」。列Aと列Bを連結せずに実行したいと思います。
ありがとう。
True = 1、False = 0
0 * 1 * 8 = 0であるため、D1は0を返します
1 * 1 * 9 = 9であるため、D2は9を返します
これにより、基準を変更できるようになります。
これにはINDEX/MATCHを使用します。元:
データのテーブルがあり、列Aの値が「c」で列Bの値が「h」である列Cの値を返したいと思います。
次の配列数式を使用します。
=INDEX($C$1:$C$5,MATCH(1,(($A$1:$A$5="c")*($B$1:$B$5="h")),0))
Ctrl+ Shift+を押して、数式をコミットしますEnter
数式を入力したら、Excelの数式監査ツールを使用して評価をステップ実行し、計算方法を確認できます。
SUMPRODUCT
複数の基準の一致の合計が必要な場合は、間違いなく価値があります。しかし、私があなたの質問を読む方法VLOOKUP
では、最初の一致を返すようなものが必要です。これを試して:
便宜上、の式G2
は次のとおりです-配列エントリが必要です(Ctrl+Shift+Enter
)
[編集:ここで数式を更新しましたが、スクリーンショットでは更新していません]
=INDEX($C$1:$C$6,MATCH(E2&"|"&F2,$A$1:$A$6&"|"&$B$1:$B$6,0))
注意すべき2つのこと:
SUMPRODUCT
結果のタイプが数値でない場合は機能しませんSUMPRODUCT
(のように)SUM
最初の一致ではなく、基準に一致する結果を返しますVLOOKUP
どうやらあなたはSUMPRODUCT関数を使うことができます。
実際、彼が求めているのは、Excelでの典型的な複数の結果表示オプションだと思います。これは、配列のSmallおよびrow関数を使用して実行できます。
これにより、さまざまな基準に一致するすべての結果が表示されます
これは、SUMPRODUCTとテーブルヘッダールックアップを使用してこれを行う方法を示す回答です。これの主な利点:数値またはその他の任意の値で機能します。
したがって、MyTableというテーブルにヘッダーH1、H2、およびH3があるとします。そして、おそらく別のシートの行1にこれを入力するとします。そして、H1、H2をそのシートのx、yにそれぞれ一致させ、H3で一致する値を返します。その場合、式は次のようになります。
=INDEX(MyTable[H3], ROUND(SUMPRODUCT(MATCH(TRUE, (MyTable[H1] & MyTable[H2]) = ($x1 & $y1),0)),0),1)
それは何をするためのものか?sum-productは、すべてが配列として扱われることを保証します。したがって、テーブル列全体を連結して、連結された値の配列を動的に計算することができます。次に、これらをxおよびyの既存の値と比較できます。魔法のように、テーブルの連結配列をxおよびyの個々の連結と比較できます。これにより、真の偽の値の配列が得られます。これをtrueに一致させると、ルックアップの最初の一致が得られます。そして、私たちがする必要があるのは、戻って元のテーブルにインデックスを付けることだけです。
四捨五入は、Index関数が整数を返すことを確認するためにあります。四捨五入するまで#N/A値を取得しました。
何が起こっているのかを確認するために、これを評価者に実行する方が有益かもしれません...
これは、テーブル以外で機能するように簡単に変更できます。テーブル参照を生の範囲に置き換えるだけです。ただし、表はより明確なので、可能であればそれらを使用してください。これの元のソースをここで見つけました:http://dailydoseofexcel.com/archives/2009/04/21/vlookup-on-two-columns/。しかし、INTへのルーティング値にバグがあったので、それを修正しました。