• ベストアンサー

別々のシートに管理されているデータを参照してデータを抽出する方法

誰か教えて下さいm(_ _)m 研修の受講状況を管理したいのですが、やり方が分かりません。 というのも、毎日いろんな研修が行われており、また日によってその人がいたりいなかったりするため、そのうち誰がどの研修を受けたのかよく分からなくなってしまうのです。 たとえば、 sheet1:「日々の研修(やったこと)」 5/1 エクセルの使い方 5/2 ワードの使い方 5/3 パワーポイントの使い方 5/4 アクセスの使い方 5/5 パブリッシャーの使い方 5/6 アウトルックの使い方 5/7 インターネットの使い方 5/8 サーバ公開のやり方 5/9 ホームページの作り方 sheet2:「各人のシフト表(勤怠表)」     5/1 5/2 5/3 5/4 5/5 5/6 5/7 5/8 5/9 Aさん ○  ×  ○   ○  ○  ×  ×  ○  ○ Bさん ×  ×  ×   ○  ×  ○  ○  ×  × Cさん ×  ○  ○   ×  ○  ×  ×  ○  ○ Dさん ○  ○  ○   ×  ○  ×  ×  ○  × Eさん ○  ×  ×   ○  ○  ○  ×  ×  ○ sheet3:「個人カルテ(その人が受講した研修)」 氏名:Aさん ----------------------------------------------------------- 1と2のシートを参照して、     この中にAさんが受けた研修を反映させる ----------------------------------------------------------- 氏名:Bさん ----------------------------------------------------------- 1と2のシートを参照して、     この中にBさんが受けた研修を反映させる ----------------------------------------------------------- 氏名:Cさん ----------------------------------------------------------- 1と2のシートを参照して、     この中にCさんが受けた研修を反映させる ----------------------------------------------------------- 氏名:Dさん ----------------------------------------------------------- 1と2のシートを参照して、     この中にDさんが受けた研修を反映させる ----------------------------------------------------------- 氏名:Eさん ----------------------------------------------------------- 1と2のシートを参照して、     この中にEさんが受けた研修を反映させる ----------------------------------------------------------- 以上のように、別々のシートで管理されているものを最終的には1つのシートでまとめられればと思っています。 よろしくお願いします。

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

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 希望通りとはいかないかもしれませんが・・・ ↓の画像のように表を作ってみました。 Sheet3のように日付データを参照して受講した場合は「受講項目」を 受講していない場合は空白になるようにしています。 Aさんの場合だけ表しています。 Sheet3のB2セルに =IF(INDEX(Sheet2!$B$2:$J$6,MATCH(Sheet3!$B$1,Sheet2!$A$2:$A$6,0),MATCH(A2,Sheet2!$B$1:$J$1,0))="○",VLOOKUP(A2,Sheet1!$A$1:$B$9,2,0),"") としてオートフィルで下へコピーしています。 尚、他の人の場合も同じような数式で対応できると思います。 以上、参考になれば幸いですが、 的外れの回答なら読み流してくださいね。m(__)m

karadakira
質問者

お礼

ありがとうございます。 やはりいろんな関数を使う必要があるんですね。 試してみます。

その他の回答 (1)

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

質問の説明は長いが >Aさんが受けた研修を反映させる、の反映させるとは、具体的にどういうものか。エクセルだから、シートに表を作るのだろうが、Aさんをテーマ・中心・主体として、 Aさんの受講暦の表を時系列に再構成すると言うことが。 しかし「勤怠表」とは、講習を受けるだけの1日か。受講暦とししたほうが、気を回さなくて済む。 また1日1講座なのか。注記が必要だろう。 Sheet2で、Aさんの行ををとリあげ(注目し)、○の日は日付を見て、その日付けでSheet1の講習名を引く。 例データ 5月1日 エクセルの使い方 5月2日 ワードの使い方 5月3日 パワーポイントの使い方 5月4日 アクセスの使い方 5月5日 パブリッシャーの使い方 5月6日 アウトルックの使い方 5月7日 インターネットの使い方 5月8日 サーバ公開のやり方 5月9日 ホームページの作り方 ーーー Sheet2 - 5月1日 5月2日 5月3日 5月4日 5月5日 5月6日 5月7日 5月8日 5月9日 Aさん ○ × ○ ○ ○ × × ○ ○ Bさん × × × ○ × ○ ○ × × Cさん × ○ ○ × ○ × × ○ ○ Dさん ○ ○ ○ × ○ × × ○ × Eさん ○ × × ○ ○ ○ × × ○ ーーー Sheet3 A列と第1行はSheet2をコピー貼り付け - 5月1日 5月2日 5月3日 5月4日 5月5日 5月6日 5月7日 5月8日 5月9日 Aさん エクセルの使い方 パワーポイントの使い方 アクセスの使い方 パブリッシャーの使い方 サーバ公開のやり方 ホームページの作り方 Bさん アクセスの使い方 アウトルックの使い方 インターネットの使い方 Cさん ワードの使い方 パワーポイントの使い方 パブリッシャーの使い方 サーバ公開のやり方 ホームページの作り方 Dさん エクセルの使い方 ワードの使い方 パワーポイントの使い方 パブリッシャーの使い方 サーバ公開のやり方 Sheet3のB2の式は =IF(Sheet2!B2="○",VLOOKUP(Sheet2!B$1,Sheet1!$A$1:$B$10,2,FALSE),"") この式を5・9日の列まで右方向に式複写。 またB2:J2の式をEさんの行まで下方向に式複写。 ーーーー 同じ位置に、形式を選択して貼り付けー値で式を消す。 ーーー Sheet3をコピーし、形式を選択して貼り付けー行と列を入れ替えるーOK で - Aさん Bさん Cさん Dさん Eさん 2009/5/1 エクセルの使い方 - - エクセルの使い方 エクセルの使い方 2009/5/2 - - ワードの使い方 ワードの使い方 2009/5/3 パワーポイントの使い方 - パワーポイントの使い方 パワーポイントの使い方 2009/5/4 アクセスの使い方 アクセスの使い方 2009/5/5 パブリッシャーの使い方 - パブリッシャーの使い方 パブリッシャーの使い方 2009/5/6 - アウトルックの使い方 2009/5/7 - インターネットの使い方 2009/5/8 サーバ公開のやり方 - サーバ公開のやり方 サーバ公開のやり方 2009/5/9 ホームページの作り方 - ホームページの作り方 のような表ができる。 ー== しかし少し欠点もあり、VBAが出来れば表の組み換えは、VBAでやるのが素直と思う。

karadakira
質問者

お礼

ありがとうございました。 よく分かりました! おっしゃる通りですね。VBAもできるようがんばります。

関連するQ&A

  • 2つのデータを参照して抽出したデータを別のシートへ反映させる方法

    表題の件、ちょっと分かりづらいかもしれませんが、研修の受講状況を管理するために使います。 というのも、毎日いろんな研修メニューが行われており、人によってその日いたりいなかったりするため、そのうち誰がどの研修を受けたのか分からなくなってしまったからです。 現在あるデータは、 1,「日々の研修メニュー(やったこと)」 2,「各人のシフト表(出勤表)」 3,「個人カルテ(その人が受講した研修)」 という3つのエクセルシートがあります。 私がやりたいのは、1・2のシートを参照・抽出したものを3シートへデータを反映させたいと考えております。 どのようにやるのか教えて頂けませんでしょうか? お願いします。

  • 管理番号から別シートのデータを参照したい

    すみません、エクセルについてどうかお知恵を貸してください…><) シート1には淡々と表形式でデータを入力します。 シート2には1で入力したデータを参照させ、依頼表のような形で 印刷できるような形式にしたいと思います。 例)シート2の「B2」欄にシート1のA列に入れた管理番号を入れると   シート2内でその管理番号の行の内容 恥ずかしながら、関数などがほぼ分かりません。前任者が似たようなデータを IF(VLOOKUP うんぬんという式を使って作成していたのですが私のスキルでは アレンジができませんでした。 シート2の B3 B4...にどのような式を入れたらいいのか、または その設定方法について教えて頂けないでしょか。宜しくお願いいたします。 ※ Excelは2013です 【シート1】 A B C D E 1 No 顧客名 契約内容 契約日 対応状況 2 1. ほげ社 ××工事 YYYYMMDD 完了 3 2. たこ社 ○○工事 YYYYMMDD 対応中 4 3. ABC商会 △△工事 YYYYMMDD 対応中 5 4. 6 5. 【シート2】 A    B C D E 1   「依頼票」 2 No.    1.  3 顧客名    ほげ社 4 契約内容  ××工事 5 契約日    YYMMDD 6 対応状況   完了

  • 別のシートにデータを出す方法

    シート1に 番号 A1に1 A2に2 A3に3 A4に4 データ↓ B1に43 B2に45 B3に47 B4に55 C1に733 C2に890 C3に826 C4に94 D1に57 D2に67 D3に41 D4に52 E1に301 E2に104 E3に719 E4に441 という表があるとします。 番号1の場合は、B1の43、C1の733、D1に57、E1に301というデータです。 シート2の、 A3に、1という数字(シート1のA1の、1という番号)をいれれば、 シート2の B3に、シート1の、B1の43というデータ。 C3に、シート1の、C1の733というデータ。 D3に、シート1の、D1の57というデータ。 E3に、シート1の、E1の301というデータ。 がでるようにしたいのですが、 VLOOKUPを使ってできますか? どのような関数の立て方したらいいでしょう? XPのExcel2003です。 よろしくお願いしますm(_ _)m

  • SUMPRODUCTにて別シートのデータを参照する方法

    Excelの関数について質問です。 SUMPRODUCTにてAシートのデータを列ごと参照し、 Bシートの特定の場所に出力する方法を探しています。 自分で調べ、以下の方法でデータを参照しようとしましたが、 うまくいきませんでした。 【試した内容】 = S U M P R O D U C T ( ( A ! E : E = B ! B : 2 ) * ( A ! F : F = B ! B : 3 ) ) 【やりたい事】 AシートのE列全ての中でBシートのB列2行目と一致する条件で、 且つAシートのF列全ての中でBシートのB列3行目と一致する条件のものを参照したい。 どこが悪いか、又こうすればいいのでは等アドバイスがございましたら 宜しくお願い致します。 出来れば具体例があると助かります。

  • エクセルで別シートを参照していて、参照元のデータを変更した場合

    エクセルで別シートを参照したいのですがうまくいきません。 (1)Sheet1には顧客データが入っています。 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 佐藤 大阪 女 4 鈴木 福岡 女 (2)Sheet2ではSheet1の顧客データの一部+獲得ポイントのデータが入っています。Sheet2のA列とB列に「=Sheet1!A2」とういう風に関数を入れてSheet1を参照しています。C列~は手入力でデータを入力しています。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15  2 小川 東京  1    5 3 佐藤 大阪  1    5 4 鈴木 福岡  1    5 (3)Sheet1に新たに顧客情報を入れますが、氏名は五十音順にしたいので行を挿入して入力します。(行3に加藤さんを入れました) 【Sheet1】   A   B   C 1 氏名 住所 性別  2 小川 東京 男 3 加藤 沖縄 男 4 佐藤 大阪 女 5 鈴木 福岡 女 (4)私の希望としては、(3)をしたらSheet2は↓のようになってほしいのですが、実際には(2)の状態のままです。 【Sheet2】   A   B    C    D 1 氏名 住所  12/1 12/15   2 小川 東京  1    5 3 加藤 沖縄   4 佐藤 大阪  1    5 5 鈴木 福岡  1    5 (5)Sheet1の変更結果をSheet2に反映することは無理なのでしょうか?

  • sheet2からsheet1へのデータの飛ばし方(エクセル関数)

    Sheet1 A  B C D E (列) ―――――――――――――――――――――――― 1| 番号  氏名   所属  入社  生年月日 2| 1000  斉藤   東京  10/4  (入力箇所) sheet2 A B C D (列) ――――――――――――――――――― 1| 番号  氏名  所属  生年月日 2| 1000  斉藤  東京  1988/11/1 sheet1のE行(生年月日)にsheet2を参照し、同じ番号の人の生年月日が表示されるようにしたいのですが、どのような式(関数)を入れたら表示されるでしょうか? ほかの似たような質問の解答を見てMatchやvlookupを使ってみましたが、できなかったので教えてください。 よろしくお願いします。

  • EXCELでシートのデータを別のシートに反映させていく方法はありますか??

    データの一覧表を作って ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・  大分類 小分類  月日  内容 A B C D E… 1     2 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ と入力済みなのですが、別のシートにこのデータを使って、大分類ごとのシートを作り、また、そのシート内で月ごとにデータを管理したいのですができますでしょうか??下記のような一覧表を作り印刷できるようにしたいんです。 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 大分類 小分類 月日 内容 A B C D E…   ・   ・   ・ 合 計 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ よろしくお願いします。

  • 別シートへのセル参照について

    別シートへのセル参照についての質問です。 例えばSheet1のA1,B3,C6,G9に値が入っているとします。 その値を順にSheet2のB2,C4,D9,E17に参照したいのですが、 それぞれにセル参照しないとダメなんでしょうか? Sheet1,Sheet2に違う種類の表があって、それぞれに同じ値を入力するんですが、Sheet1に入力すれば自動的に入るようにしたいです。 実際はSheetや、値を入力するセルがかなり多いので、ひとつひとつセル参照するのが大変なので・・・よろしくお願いします。

  • エクセルで2枚のシート参照で行列を入れ替える方法

    Sheet1のB6~B505の参照を Sheet2のC3,D3,E3・・・・と行う必要があります。 (Sheet1のB6がSheet2のC3,Sheet1のB7がSheet2のD3という風にです) 同様にSheet1のC6~C505の参照を Sheet2のC4,D4,E4・・・・と以降相当な回数行います。 効率的にCOPY可能な関数を教えて頂けますでしょうか、よろしくお願いします。

  • エクセルで別シートのデータを抽出

    ~シートA~   A B C D E F G  ┌─────────────┐ 1│ │10│20│30│40│50│60│  │ │───────────│ 2│ │11│21│31│41│51│61│  │4│───────────│ 3│月│12│22│32│42│52│62│  │ │───────────│ 4│ │13│23│33│43│53│63│  │ │───────────│ 5│ │14│24│34│44│54│64│  └─────────────┘ 6  ┌─────────────┐ 7│ │10│20│30│40│50│60│  │ │───────────│ 8│ │11│21│31│41│51│61│  │5│───────────│ 9│月│12│22│32│42│52│62│  │ │───────────│ 10│ │13│23│33│43│53│63│  │ │───────────│ 11│ │14│24│34│44│54│64│  └─────────────┘         ・         ・         ・ ~シートB~   A B C D E F G  ┌─────────────┐ 1│ ▽ │ │ │ │ │ │  │ │───────────│ 2│ │ │ │ │ │ │ │  │○│───────────│ 3│月│ │ │ │ │ │ │  │ │───────────│ 4│ │ │ │ │ │ │ │  │ │───────────│ 5│ │ │ │ │ │ │ │  └─────────────┘ ↑はリストボックスで1月~12月の値が入っている。 上記条件でシートBのリストボックスから選んだ月のデータをシートAの表から該当する月のデータを全て抽出したいのですが、どのようにすればよろしいでしょうか。

専門家に質問してみよう