• 締切済み

Excel、マクロ、VBAで実現できないでしょうか

初めて質問させていただきます。 Excelで給与計算を行っているのですが、現在、氏名と給与が記載された名簿が、月毎に別のシートで管理されています。それを、下記のように複数の月をまとめて単一のシートにしたいのです。   10月         11月 Aさん 20万円   Aさん 22万円 Bさん 25万円 Cさん 40万円   Cさん 41万円 Dさん 30万円   Dさん 30万円 Eさん 25万円   Eさん 28万円              Fさん 15万円 Bさんは10月末に退職済みのため、11月名簿には存在しません。また、Fさんは11月1日採用のため、10月名簿には存在しません。この点がネックです。 Accessも勉強すれば使用可能です。VBA初心者で恐縮なのですが、何かヒントをいただけないでしょうか。ご教授よろしくお願い致します。

みんなの回答

  • mame9999
  • ベストアンサー率44% (90/203)
回答No.3

人名だけの名簿のような物があれば あるシートのA列に名前をいれて (BさんもFさんも含む) Vlookupで検索すれば可能ですね もちろんその月に発生していない人については Vlookupの結果がエラーの時は0 そうでないときはVLookupの結果 と言うふうにしておくといいですね

okotamikan
質問者

お礼

vlookupでも確認できるようですね。 アドバイスありがとうございました。

  • CHRONOS_0
  • ベストアンサー率54% (457/838)
回答No.2

Accessが使えるのならAccessが簡単ですね まずExcelのデータをデータベースらしく作り替えます 氏名 給与 月 Aさん 200000 10月 Bさん 250000 10月 Cさん 400000 10月 Dさん 300000 10月 Eさん 250000 10月 氏名 給与 月 Aさん 220000 11月 Cさん 410000 11月 Dさん 300000 11月 Eさん 280000 11月 Fさん 150000 11月 これをAccessにインポートし追加クエリで1つのテーブルにまとめ クロス集計クエリで 氏名:行 月:列 給与:値:合計 とします 同じ発想で Excelでも表を上のように作り替え全部の月を縦に結合して ピボットテーブルで出来ますよ

okotamikan
質問者

お礼

お返事が遅れてしまい大変申し訳ありません。 Access、ピボットテーブル両方で試してみましたが、どちらも実現できました。大変助かりました。 Accessを使えるようになれば他にも色々と実現できそうな気がするので、ちょっと勉強してみようかと思います。ありがとうございました。

noname#46899
noname#46899
回答No.1

別シートになっているのがネックですが、私なら、ピポットテーブルを使います。 まず、各シートのデータを一枚にまとめます。  月   氏名   給与 10月  A  20万円 10月  B  25万円 10月  C  40万円  ・  ・  ・ 11月  A  22万円 11月  C  41万円 11月  D  30万円  ・  ・  ・ という形のデータベース形式にします。一行目は必ずタイトルにします。 後はピポットテーブルウイザードで、ピポットテーブルを作りますが、そのとき、「行」に「氏名」を、「列」に「月」を、「データ」に「給与」を指定すればご希望の形になります。ただしデータが金額でなく「個数」に設定される場合があるので、そのときは、ピポットテーブルが表示された後、データ部分を右クリックすると表示されるメニューから「フィールドの設定」を選択し、「集計の方法」を「合計」にしてください。 ピポットテーブルについて詳しくは、ヘルプを参照するか、ネット検索してみてください。

okotamikan
質問者

お礼

お返事が遅くなってしまい大変申し訳ありません。 同じシートに入れてしまえばピボットテーブルで実現可能だったんですね。難しく考えすぎていたかもしれません。 助かりました。どうもありがとうございます!

関連するQ&A

専門家に質問してみよう