• ベストアンサー

エクセルで時間割表に自動的に入力されるようにしたい

こんにちは、いつも大変お世話になっています。 現在時間割表を作成しています。 B3に教員名「山田」 B4~F4に「月」「火」「水」「木」「金」 A5.6(セルを結合しています)に「1限」 A7.8に「2限」A9.10に「3限」A11.12に「4限」A13.14に「5限」 B5には「科目名」 B6には「教室」が入ります。(他のセルも同様で、上に「科目」下に「教室」です) H3 O3 A16 H16 O16にもそれぞれ教員名が入り 同じように一週間の時間割があります。 別のシートには 「教員名」「曜日」「時限」「科目」「教室」   山田  月    1   英語  302   山田  月    2   英語  102   山田  火    1   国語  208   田中  月    3   数学  308   田中  水    5   数学  103 となっています。 今は時間割表に手動で科目と教室を入力しているのですが、 20名分の作業になり大変です。 一覧のデータから自動的に時間割表に入力することはできないでしょうか? windowsXP Office2003を使用しています。 よろしくお願いします。

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

  • ベストアンサー
回答No.2

教員おのおのの時間割があって、「別のシート」を参照してたとえ ば「山田先生の月曜日の1時限目」の科目と教室を見つければいいん ですよね。だったら単純にvlookup関数でいいんじゃないですか。 まず、「別のシート」の時限と科目の間に1列追加して、 =教員名&曜日&時限 な式にします。これで探すべきキーが出来ました。 B5は、「山田先生の月曜日1時限目」を探して科目を返しますから、 =vlookup($B$3&B$4&$A5,別のシートの表,2,FASLE) ですね。空き時間は#N/Aエラーになるので、そのまま印刷したいな ら=if(isna(vlookup(~とエラー処理をする必要があります。面倒く さいので、「別のシート」に空き時間分もデータを作っとくのがお すすめ。

hanauta00
質問者

お礼

ありがとうございました。 Vlookup関数を使うとは考えつきませんでした。 早速やってみます。

その他の回答 (1)

  • higekuman
  • ベストアンサー率19% (195/979)
回答No.1

ワークシート関数での方法は思いつかず、VBAを使う方法しか考え付きません。 VBAでは、一覧データを上から順に、データが無くなるまで、各行で処理をします。 処理内容としては、 教員名から、その教員の月曜1時限のセルを割り出し、曜日と時限から記入する位置を割り出し、科目と教室を記入します。 やることはこれだけです。 Do While ~ Loop 構文が解れば、あとは難しいことはありません。 Offsetプロパティを使うと便利かな、っていうくらいです。 あとは、ご自分で勉強なさってください。 勉強していく中で、解らないことがあったら、またここで聞くと良いと思います。

hanauta00
質問者

お礼

ありがとうございます。 仰るとおりですね。ついついこちらに頼る癖がついてしまい、申し訳ないです。 早速VBAを調べてみました。 まだ難しいですが、なんとなくできそうです。

関連するQ&A

  • Excelで表の置き換えについて

    表(1)を表(2)のように表記させるには、表(2)でどのような関数をセルに入れればいいのでしょうか。 【表(1)】     A    B    C    D    E 田中 100   200   100       300 山田       300       200   100 【表(2)】     1日目    2日目    3日目    4日目 田中 100      200     100      300 山田 300      200     100

  • エクセルで担当時間数の自動計算

    年間担当科目時間数を計算する関数を作ろうとしています。 時間は週当たりの時間数、学期の部分はその科目が何週あるかを示しています。 表1で担当の名前を入力したら、表2のように自分の名前の所に自動的に 計算されるようにしたいと考えています。 よろしくお願いいたします。 表1 科目  時間 一学期 二学期  担当 ------------------ 数学1 2   10  15  田中 漢文  3   10  20  鈴木 数学2 2    5   5  田中 音楽  2   15  15  佐藤 表2    一学期 二学期 田中  30  40 鈴木  30  60 佐藤  30  30

  • エクセル。表からの抽出について

    A表の中に複数の会社名と担当者がありますが、重複する社名もあります。 (例) 【Aセル】【Bセル】 A社・・・・山田 B社・・・・鈴木 A社・・・・田中 C社・・・・大田 これを別の表に社名を抽出したいのですが、同じ社名は1社とみなし社名の種類だけを抽出する方法はありますか。 (例) 【A表】→→【B表】 A社-----⇒A社 B社-----⇒B社 A社--⇒×重複するため除外 C社-----⇒C社 説明が不明瞭で申し訳ありませんが、宜しくお願いいたします

  • エクセルの表の合体

    2つの表A,Bがあります。AとBは同じフィールド名を持っています。 Aが持つIDとBが持つIDが重複する場合,BのレコードをAに上書きし,重複しない場合はそれぞれのレコードを用いて新しい表Cを作りたいのですが,方法がわかりません。 どなたかご教授お願いいたします。 例) A表 ID,苗字,名前 0,佐藤,一郎 1,田中,太郎 2,山田,翔太 3,上田,大作 5,加藤,正和 B表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 4,山下,謙一 5,上山,浩二 C表 ID,苗字,名前 0,宮元,賢治 1,田中,太郎 2,山田,翔太 3,上田,大作 4,山下,謙一 5,上山,浩二

  • エクセル2003を使用しています。

      A   B 1 田中 ● 2 田中 ● 3 田中 ● 4 山田 5 山田 6 山田 ● 7 田中 8 田中 ● 9 田中 ・ ・ ・ 例えば、上の様な表がりあります(分かりにくくてすみません!)。 私が出したいのは、田中さんの、"●"の数になります。 Aセルの、1~3だけならCOUNTIFで出せます。 ですが、7~9も範囲に入れたいと思って、Ctrlで入力しますと、 「入力した数式は正しくありません」となってしますのです(>_<) エクセル講座の様なHPでも調べてみたのですが、初心者には 難しかったです・・・。 どなたか、お分かりになる方、教えて頂けないでしょうかm(_ _)m!!

  • excelでできますか?

      1/1月   1/2火   1/3水   1/4木   1/5金 山田 ○   △    ○    △   × 田中 ○   ×    ×    ○   △ 鈴木 △   △    △    ×   × の様な表で 山田 ○  1/1月 1/3水  △  1/2火 1/4木 ×  1/5金 の様に個人の集計をとるようなこと、できますか?

  • excel 表に入力するともう1つの表に自動入力

    タイトルにうまく言いたいことが表せませんでした。 表1 Aさん 4/15 4/19 Bさん 4/16 4/22 Cさん 4/17 4/23 Dさん 4/18 4/24 表2 4/15 4/16 4/17 4/18 4/19 4/22 4/23 4/24 表1で、"~さん"の右の複数のセルに、日付を入れたとき、 表2で、日付の右のセルに、該当する"~さん"を表示させることはできるでしょうか。 いろいろ検索してみたのですが、検索ワードが良くなかったのか、見つかりませんでした。 よろしくお願いいたします。

  • エクセルで、次のような自動入力をしたい

      A    B    C    D   E  ・・ AA 1 田中 鈴木 佐藤          山田 2 鈴木 山田              海岡 3 田中 佐藤              佐藤 というような表があり、AAの列に名前を入力したとき、 D1に「山田」、C2「海岡」と、その行に関してAA列に新規の名前が入力されたときにD1,C2に自動入力することは、VBAで簡単にできますか? 3列目には「佐藤」さんがすでいるので入力不要です。 よろしくお願いします。(マクロ初心者です)

  • エクセル カルテ記載すると、出席表へ印

    エクセル データベース カルテ記載すると、出席表へ印がつくようにしたい 日々のカルテ記載を効率化できないか考え、マクロや関数を使って色々と試しているところです。 検索してもなかなか分からなかったので、質問させていただきます。 excel2003を使用。 ---A--- B---C---D 1 日付 名前 時間 内容 2 5/10 山田 9:00 XXXX 3 5/10 田中 9:20 XXXX 4 5/11 鈴木 9:00 XXXX 5 5/11 山田 9:20 XXXX このように日々のカルテを記載しています。(入力場面は別に作りマクロで空白セルへ登録するようになっています) この表に入力されたら出席表にも自動でチェックがつかないものかと思っています。 出席表は別にエクセルで作っており、現在は手入力しています。 出席表 ----A--B----C---D----E 1 名前--1---2---3----4 2------月---火--水---木 3 田中--1--------1 4 鈴木-------1--------1 5 山田--1----1----1---1 このような表に関数を加えて使用しています。 IF関数にANDを加えて出来ないか試しましたが、エラー表示でした。 出来れば現在使用中のエクセルデータをそのまま使用したいと考えていますが、いかがなものでしょうか?? 独学ですので、分からない事も多いのですが、よろしくお願い致します。

  • エクセル関数:シフト表を超過勤務表へ入力したい

    エクセルシート1に勤務表、シート2に超過勤務一覧表を作っています。 勤務形態としてはA,B,C,AB,BCの5種類あり、 週2回A,B,Cの各2名の6人体制(7時間労働が6人)、週5回はAB2名,BC2名の4人体制(8時間労働が4名)で動いています。 A,B,Cという勤務体制とAB,BCという勤務体制が混ざることはありません(例:2月10日に田中さんがA,同日に佐藤さんがBCという勤務体制はあり得ない) この週5回のAB,BCという勤務体制の日については1時間の残業が発生しているため、その管理を超過勤務一覧表にて管理しています。(A,B,Cという勤務体制の日については残業が発生していないため管理はしていません。) 超過勤務一覧表ではセルA1,2,3,,,に日付、B1,2,3,,,に名前、C1,2,3,,,に勤務時間(例:ABであれば19:00~20:00、BCであれば20:00~21:00というように記載)、D1,2,3,,,に残業時間数(毎回ほぼ決まって1時間)を記入しています。 現在はシート1の勤務表をプリントアウトし、それを片手に持ちシート2の超過勤務一覧表へ毎回手入力していますが、少しでも業務負担をはかりたく、 IF関数やVLOOK関数などについて調べてみましたがうまくできませんでした。 勤務表にて2月10日に田中さんと佐藤さんがABという勤務形態、鈴木さんと田中さんがBCという勤務形態として働いた場合、それを上述のような一覧表に一部分でもいいので自動入力できるような関数はありませんでしょうか? すべて手入力の状況から少しでも脱することができればと思っています。よろしくお願いします。

専門家に質問してみよう