アプリ版:「スタンプのみでお礼する」機能のリリースについて

EXCELを使い、関数を組んで時間割を作りたいのですが

どうも関数が上手く作れません。
たとえば、
  A   B    C    D   E
 ------------------------------------
1|月曜|2時間目| 体育 |○○先生|体育館|
2|月曜|4時間目| 数学 |○○先生|1-B |
3|火曜|3時間目| 現代文 |○○先生|1-C |
4|火曜|4時間目| 英語 |○○先生|1-D |
5|水曜|1時間目| 音楽 |○○先生|音楽室|

とあるとします。
これを、

 月曜 火曜 水曜 木曜 金曜


2体育
 体育館
3数学
 1-B


こんな感じにしたいんです。
例のような「月曜 1時間目 体育 体育館」 みたいなのは全て学校からもらったのですが、
量が多くて組み立てるのがきついんです。
IF関数とANDを使おうかと思ったのですが、上手いこといかず・・・
回答宜しくお願いします!!

A 回答 (4件)

こんばんは!


すでに回答は出ていますので、参考程度で目を通してみてください。

↓の画像でSheet1のデータをSheet2の時間割に表示するようにしています。
Sheet1に作業用の列を使わせてもらっています。
作業列F2セルに
=A2&LEFT(B2,1)
という数式を入れ、オートフィルで下へずぃ~~~!っとコピーします。

そして、Sheet2のB2セルに
=IF(COUNTIF(Sheet1!$F$2:$F$100,B$1&$A2),INDEX(Sheet1!$C$2:$C$100,MATCH(B$1&$A2,Sheet1!$F$2:$F$100,0))&CHAR(10)&INDEX(Sheet1!$E$2:$E$100,MATCH(B$1&$A2,Sheet1!$F$2:$F$100,0)),"")
という数式を入れ、列方向と行方向にオートフィルでコピーすると
画像のような感じになります。
数式はSheet1の100行目までデータがあっても対応できるようにしています。
尚、Sheet2の数式を入れたセルを全て範囲指定し、
右クリック → 「配置タブ」の中で 「折り返して全体を表示する」
にチェックを入れておきます。

以上、参考になれば良いのですが
他に良い方法があれば読み流してくださいね。m(__)m
「EXCELを使い、関数を組んで時間割を作」の回答画像4
    • good
    • 1
この回答へのお礼

おおー!!出来ました!!
ありがとうございます!
スクリーンショットもわかりやすく、すごい参考になりました!!
ありがとうございました!!

お礼日時:2010/04/14 23:42

[回答番号:No.2この回答へのお礼]へのコメント、



》 ん、ですが何がなにやら・・・;

やっぱり。では式を簡単にしましょか?

では、添付図のような Sheet2 を作業シートとして用意します。
B2: =SUMPRODUCT((Sheet1!$A$1:$A$20=B$1)*(Sheet1!$B$1:$B$20=$A2),ROW(A$1:A$20))

別シート(例えば Sheet3)に次の式を入力したものが[回答番号:No.2]の添付図になります。
B2: =IF(Sheet2!B2,INDEX(Sheet1!$C$1:$C$20,Sheet2!B2)&CHAR(10)&INDEX(Sheet1!$E$1:$E$20,Sheet2!B2),"")

此れでも「何がなにやら・・・」なら、貴方が理解できる解決策はない、と諦めませう。
「EXCELを使い、関数を組んで時間割を作」の回答画像3
    • good
    • 0
この回答へのお礼

でもやっぱり私には難しかったみたいです…
EXCEL勉強しなおしたいと思います。
ありがとうございました!!

お礼日時:2010/04/14 23:49

B2: =IF(SUMPRODUCT((Sheet1!$A$1:$A$20=B$1)*(Sheet1!$B$1:$B$20=$A2

),ROW(A$1:A$20)),INDEX(Sheet1!$C$1:$C$20,SUMPRODUCT((Sheet1!$A$1:$A$20=B$1)*(Sheet1!$B$1:$B$20=$A2),ROW(A$1:A$20)))&CHAR(10)&INDEX(Sheet1!$E$1:$E$20,SUMPRODUCT((Sheet1!$A$1:$A$20=B$1)*(Sheet1!$B$1:$B$20=$A2),ROW(A$1:A$20))),"")
「EXCELを使い、関数を組んで時間割を作」の回答画像2
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
ん、ですが何がなにやら・・・;
ともかくありがとうございました!

お礼日時:2010/04/12 19:18

元の表でA列に作業列を追加して


A2=B2&C2
C列の"時間目"を入力しないで数値とする。
※時間目を表示したい場合は、セルの書式設定をユーザー定義で
0"時間目";;
としてください

結果をH2:M5に表示するものとして数式を作りました。I2セルに
=IF(COUNTIF($A$2:$A$6,I$1&$H2),VLOOKUP(I$1&$H2,$A$2:$F$6,4,0)&CHAR(10)&VLOOKUP(I$1&$H2,$A$2:$F$6,6,0),"-")
※セルの書式設定で配置を折り返して全体を表示にしてください。

結果は画像添付をご覧ください。
「EXCELを使い、関数を組んで時間割を作」の回答画像1
    • good
    • 0
この回答へのお礼

回答ありがとうございます!!
んーむ、こんなに長くなってしまうんですね~
もっと簡単な方法はないのか・・・とか探してみたくなりますね。

んー、私の場合何故かできませんでした;
指定通りに作ってみたのですが…

お礼日時:2010/04/12 00:27

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!