• ベストアンサー

エクセルでの社員管理

エクセルでデータベースというのか社員番号、氏名、生年月日、住所等 社員ごとに一行ずつ入っています。これを一人1枚の社員台帳を作ることしました。 たとえば、社員番号を入れるとデータベースを元にして、すべて自動的に入るように設定したいのですが、どう設定すればいいのでしょうか?宜しくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Sheet1のA1:C5に、データベース・住所録があるとします。 番号 氏名     住所 11 山田 一郎 横浜市 12 近藤 次郎 中野区 13 相田 三郎 三鷹市 14 大岡 信夫 国立市 Sheet2が社員個人カードとして A1:D5に 社員カード 番号 11 氏名 山田 一郎 住所 横浜市 番号をB3セルに入れると、D3に住所、D5に住所が入るようにするものとします。 D3に関数=OFFSET(Sheet1!$A$2,MATCH(B3,Sheet1!$A$2:$A$10,0)-1,1) D5に関数=OFFSET(Sheet1!$A$2,MATCH(B3,Sheet1!$A$2:$A$10,0)-1,2) と入れる。Sheet1の B列を持ってくる->Offset関数の最後の引数が2 C列を持ってくる->Offset関数の最後の引数が3 D列を持ってくる->Offset関数の最後の引数が4 (本例では省略)と変化させます。 B3に番号が入れてない時のエラー表示を出さない対策は 略(既回答#2等をご参考に)。 印刷を自動化したいところですが、VBAを使わないと 関数では出来ません(略)。

その他の回答 (2)

  • shiga_3
  • ベストアンサー率64% (978/1526)
回答No.2

例えばSheet1がデータベース、Sheet2が社員台帳とします。 Sheet1について A列から社員番号、氏名、生年月日、住所、1行目が見出しとし、仮にA2:D10の範囲をデータ入力欄とします。 Sheet2について A1を社員番号入力欄、B1:D1を氏名、生年月日、住所表示欄とします。 以上の条件で B2に =IF($A$1="","",IF(VLOOKUP($A$1,Sheet1!$A$2:$D$10,2,FALSE)=0,"",VLOOKUP($A$1,Sheet1!$A$2:$D$10,2,FALSE))) B3に =IF($A$1="","",IF(VLOOKUP($A$1,Sheet1!$A$2:$D$10,3,FALSE)=0,"",VLOOKUP($A$1,Sheet1!$A$2:$D$10,3,FALSE))) B4に =IF($A$1="","",IF(VLOOKUP($A$1,Sheet1!$A$2:$D$10,4,FALSE)=0,"",VLOOKUP($A$1,Sheet1!$A$2:$D$10,4,FALSE))) と入力します。(空欄がある場合のエラー、ゼロ表示への対処を含んでいます) なおVLOOKUP関数に関しては下記を参考にして下さい。 http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html

参考URL:
http://www.atmarkit.co.jp/fwin2k/win2ktips/317vlookup/vlookup.html
回答No.1

VLOOKUP関数を使います。 詳しくはヘルプを参照してください。

関連するQ&A