- 締切済み
Excelの関数に詳しい方、助けてください!汗
カテゴリー違いでしたらすみません。 正しいカテゴリがあれば教えてください・・・! お読みくださり、ありがとうございます。 しがない事務員をしております。 膨大な項目をExcelにてまとめなくてはならないため、 適切な関数がないか教えてください。 まずは添付画像をご覧ください。 ※わかりずらくてすみません・・・ 要するに、オレンジ色に染められた「社員名」を入力することで、 右にある黄色に染められた「社員番号」を表示できるようにしたいのです。 また、別シートにて、「社員名」と「社員番号」が大量に置かれております。 以上です。 本来なら、社員番号を入力したら社員名を表示・・・という流れかと思いますが、 そこは諸事情にて不可能なのです・・・。 お手数をおかけいたしますが、Excelや関数に詳しい方、是非ともお助けください!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- kagakusuki
- ベストアンサー率51% (2610/5101)
社員名に該当する社員番号を表示させたいとの事ですが、社員番号と異なり、社員名には同姓同名の社員がいる可能性も考えられます。 ですから、該当する社員が複数名居る場合には該当する社員番号を全て表示し、逆に該当する社員がいない場合には「(該当無し)」と表示される様にするという方法は如何でしょうか? 尚、御質問文には >別シートにて、「社員名」と「社員番号」が大量に置かれております。 と書かれているだけで、何というシート名のシートであるのかという事や、どの様なセル範囲に「社員名」と「社員番号」のリストが設けられているのかという事に関して何も書かれていない様ですので、仮の話として、Sheet1のA列に元データの「社員名」が、Sheet1のB列に元データの「社員番号」が入力されていて、Sheet2のA2以下に検索したい社員名を入力すると、Sheet2のB列~E列に該当する社員の社員番号が表示されるものとします。 まず、Sheet2のB2セルに次の関数を入力して下さい。 =IF(INDEX($A:$A,ROW())="","",IFERROR(VLOOKUP(INDEX($A:$A,ROW()),INDEX(Sheet1!$A:$A,IF(COLUMNS($B:B)=1,1,MATCH(INDIRECT("RC[-1]",FALSE),Sheet1!$B:$B,0)+1)):INDEX(Sheet1!$B:$B,ROWS(Sheet1!$B:$B)),2,FALSE)&"",IF(COLUMNS($B:B)=1,"(該当無し)",""))) 次に、Sheet2のB2セルをコピーして、、Sheet2のC2~E2のセル範囲に貼り付けて下さい。 次に、Sheet2のB2~E2のセル範囲をコピーして、、Sheet2のB列~E列の3行目以下に貼り付けて下さい。 以上です。
>>膨大な項目をExcelにてまとめなくてはならないため、 適切な関数がないか教えてください。 LOOKUP関数
- aokii
- ベストアンサー率23% (5210/22062)
VLOOKUP関数()を使ってみてください。 見つけて戻したい値 (従業員の電話番号) の左側に検索する値 (従業員の姓) が来るようにデータを配置するのが VLOOKUP の秘訣です。 書式: VLOOKUP(検索値, 範囲, 列番号, [検索の型]) 次に例を示します。 =VLOOKUP(105,A2:C7,2,TRUE) =VLOOKUP("前田",B2:E7,2,FALSE) 引数名と説明 検索値 (必須) 検索の対象となる値。この値は、範囲で指定したセル範囲の左端の列に入っていなければなりません。 たとえば、範囲がセルB2:D7 である場合、検索値は列 Bに入っていなければなりません。下の図を見てください。検索値には値、またはセル参照を指定できます。 範囲 (必須) VLOOKUPが検索値と戻り値を検索するセル範囲。 セル範囲の左端の列には必ず検索値 (たとえば、下の図では姓)が含まれます。また、セル範囲には見つけて戻したい値 (下の図では名) が入っていなければなりません。 ワークシートで範囲を選択する方法については、こちらを参照してください。 列番号 (必須) 戻り値を含む列の番号。範囲の左端の列が1 になります。 検索の型 (省略可) FALSE を指定すると、左端列から検索値と完全に一致する値が検索されます。 TRUE を指定すると、左端列は数字または英字を基準に並べ替えられているものとみなされ、検索値に最も近い値が検索されます。この引数を省略した場合は、TRUE が指定されたものとみなされます。