2016-08-25 4 views
0

従業員に次の数のレイヤーを表示することによって拡張しようとしている、それは名前のリストのために働く。Excel:列Aと列Bを一致させ、対応する列C、D、Eなどに識別子を配置する

リンクされたイメージの列Cは、Aの名前のリストを一番上の行の名前のリストと照合することによって、1-7の結果を返します。これは、 "JR"は "BE"のために働くが、 "BE"は "JW"のために働くので、 "JR"も技術的に "JW"の下にあることを示している。私が達成しようとしているのは、以下のような結果を得ることです。

   Superv. Employ. 
       Column A Column B Column C Column D Column E 

名を検索する:これらの結果は、その後、特定の人の下での従業員のリストを作成するために使用されるJWのAD

    BE   JR   1   2   3 
        BE   WP   1   2   3 
        JW   BE   2   3 
        AD   JW   3 
        JW   JH   2   3 
        AD   AD   3 

BE。

名を検索する:でしょう、最終的な結果を達成するための別の方法がある場合はもちろん、AD JW

従業員WP JW BE JR BE WP JH JR WP JR

BE私は現在持っているものに変更されたフォーマットを気にしません。誰かがこれを達成するためのアイデアを持っている場合は、対応してください。おかげ

+0

反復的なループでVBAが必要なようです。 – Jeeped

答えて

2

出力にほとんど変化が、これは簡単になるだろう:

C2には入れ:

=A2 

とDOWNコピーを、これは直属の上司です。

は、次にD2に、我々は入れ:オーバーとダウン

=IFERROR(IF(C2=INDEX($A:$A,MATCH(C2,$B:$B,0)),"",INDEX($A:$A,MATCH(C2,$B:$B,0))),"") 

コピーのみ空のセルまで表示されます。

enter image description here

これは名前ではなく番号を返します。


たちは、スーパーバイザ数を示すだろう単純なテーブルを追加することができます番号を取得するには:

enter image description here

その後、我々は、これらに数式を変更します。C2で

=VLOOKUP(A2,I:J,2,FALSE) 

コピーダウン。 D2で

=IFERROR(IF(C2=VLOOKUP(INDEX($A:$A,MATCH(INDEX($I:$I,MATCH(C2,$J:$J,0)),$B:$B,0)),$I:$J,2,FALSE),"",VLOOKUP(INDEX($A:$A,MATCH(INDEX($I:$I,MATCH(C2,$J:$J,0)),$B:$B,0)),$I:$J,2,FALSE)),"") 

コピーダウンとオーバー。

enter image description here

+0

あなたのソリューションを適用することは私が作ったサンプルのために働いたが、私は解決のために重要であると思われるいくつかの情報をあなたに提供することに失敗した。この表には、給与明細セクション "列A"に、ソリューション列I&Jに記載されているリストにない従業員 "列B"の名前が含まれています。 – Jrussell

+0

尋ねた内容のみ回答できます。実際のデータに変換できない場合は、欠陥のある質問に回答した人の過ちではありません。答えにチェックマークをつけてあなたの質問に答えたので、答えとしてマークするのが最善です。次に、新しい要件と実際の生活データにこれを適応させるために何を試みたかで、新しい質問を開きます。常により多くの情報を提供する方が良いです。 @Jrussell –

+0

1つの特定の名前/番号の組み合わせになると列Dに空白または不正な番号が表示され、残りの列には空白のみが表示されます。私は必要に応じてさらに詳しく説明することができます。ありがとうございます – Jrussell

関連する問題