• ベストアンサー

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

こんにちは、いつも大変お世話になっています。 現在時間割表を作成しています。 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