2017-01-20 9 views
0

私は2つのワークブックが1つの名前付きスケジュールのAIHという名前のスケジュールを持っています。どちらも固有の識別子を持つエージェントを持っています。VLookup then Nested Ifの

AIHのワークブックには、エージェントが訓練を受けたワークグループがあります。基本、一般、中級、専門、非派遣、HP、MBの範囲です。エージェントがこれに訓練されている場合は、

両方のワークブックにある一意の識別子に基づいて、スケジュールワークブックでこれらのワークグループ間で「トレーニングの最高の価値」を引き出すことができます。

=IF([headcount.xlsx]Sheet1!$N$2="X", _ 
    [headcount.xlsx]Sheet1!$N$1,IF([headcount.xlsx]Sheet1!$M$2="X", _ 
    [headcount.xlsx]Sheet1!$M$1,IF([headcount.xlsx]Sheet1!$L$2="X", _ 
    [headcount.xlsx]Sheet1!$L$1,IF([headcount.xlsx]Sheet1!$K$2="X", _ 
    [headcount.xlsx]Sheet1!$K$1,IF([headcount.xlsx]Sheet1!$J$2="X", _ 
    [headcount.xlsx]Sheet1!$J$1,IF([headcount.xlsx]Sheet1!$I$2="X", _ 
    [headcount.xlsx]Sheet1!$I$1,IF([headcount.xlsx]Sheet1!$H$2="X", _ 
    [headcount.xlsx]Sheet1!$H$1,"Not Trained"))))))) 

をだから、これはXを探すために私のセルを介してライフルと列を逆方向に私ライフルとして最高の訓練を受けたワークグループが表示されます。次のようである場合にネスト

私。

問題は、列の一意の識別子に一致するようにvlookupを実行する必要があるため、エージェントID(一意の識別子)に基づいて適切な情報を引き出すことができ、vlookupが私に望むようにこれを行う方法がわかりません特定の列の値を返します。

非常に新しいExcelで、より詳細な答えは私のために良いです。

ありがとうございます!

+1

長い式を '= INDEX([headcount.xlsx] Sheet1!$ H $ 1:$ N $ 1、MATCH(" Y "、[headcount.xlsx] Sheet1!H2:N2) ) ' –

+0

また、一意の識別子はどの列にありますか? –

答えて

0

あなたの式は、このようなものになるだろう:

=INDEX([headcount.xlsx]Sheet1!$H$1:$N$1,MATCH("Y",INDEX([headcount.xlsx]Sheet1!H:H,MATCH(A2,[headcount.xlsx]Sheet1!A:A,0)):INDEX([headcount.xlsx]Sheet1!N:N,MATCH(A2,[headcount.xlsx]Sheet1!A:A,0)))) 

A2はあなたが[headcount.xlsx]Sheet1!シートにルックアップしたいユニークな識別子であり、[headcount.xlsx]Sheet1!A:Aは、固有の識別子が発見されているシートの列です。

これを列の下にコピーすることができます。

+0

ありがとうございました、私が入る瞬間にこれを試していきます。 – Benumb

+0

これは完璧に機能しました! インデックスの一致をもう少し読み取る必要があります。ここで何が起こっているのかわかりません。 – Benumb

+0

@Benumb答えとしてチェックマークをクリックして、正しいとマークしてください。 –

0

あなたはまだ説明が必要なのかどうかはわかりませんが、とにかく私はそれに亀裂を入れるでしょう。

誰かがエラーを発見した場合は、私にお知らせください。私はそれを修正します。定義は「外側」MATCH()、「Y」を探して1、見てみる

...

MATCH(value-to-find,range-to-look-in,[match-type]) 

一つのキーが存在しないものである - つまり、@ScottCranerはしませんでしたマッチタイプを指定します。デフォルトでは1に設定されています。この場合、最大値は「Y」以下です。最大の値を探す過程で、値がなくなるまで "Y"を探し続けます。値は常に "X"の右端の列です。 "X"が "Y"より小さく、すべての値が "X"であるために機能します。それは "Y"の代わりに "X"を探すことにもなりますが。 (なぜスコットが "Y"を使用したのか分かりません)

"外側" MATCH()の動作を説明しています。しかし、それはどこで見ていますか?

範囲見通しは、範囲の[左上]と[右下]の2つのINDEX()機能で構成されています。最初のINDEX()は、あなたが探している識別子(A2)を持つ行にある列Hのセルを返しています。 2番目のINDEX()は、同じ行にあるN列のセルを返します。関連付けられた "内部" MATCH()関数は、の一致タイプの0を持ちます。つまり、最初の完全一致が見つかります。

あなたの識別子(A2)は、行20に表示されたのであれば、範囲ツー見えるはH20なり:N20、その後、外側MATCH()は、その範囲の右端の「X」を探し、外側INDEX()対応するヘッダ(HとNの間の一番上の行)を返します。

IFERROR()またはその他のIF関数を使用して、元の数式の最後の部分(「訓練されていない」)のように「X」がまったくない場合を処理する必要があります。