- ベストアンサー
エクセルで予定表作成時に同一予定の回数を自動入力する方法
- エクセル2002 for WinXPを使用して予定表を作成しています。同一予定の回数を自動入力したい場合、特定の日付に会議名を入力すると、自動的に連番が振られる方法を知りたいです。
- 会議は15コくらいあり、それぞれの会議が10回から20回開催されます。countif関数を使用することも考えましたが、範囲の指定方法がわかりません。関数を使用して同一予定の回数を自動入力する方法を教えてください。
- エクセルの予定表で、特定の日付に会議名を入力すると、自動的に連番を振る方法を知りたいです。会議は15コくらいあり、それぞれの会議が10回から20回開催されます。どのような関数を使用すれば良いでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
●訂正のお詫び まず#2のRange("b2:F6")はRange("b2:F7")に訂正し、表の方も第6週を増やしてください。 ●関数を使う方法 #2のVBAと違って、下方向に望む表を出します。 基データ A1:F7 #2と少し変えてます。 月 火 水 木 金 1 a b a c e 2 b 3 b a a f 4 c 5 d d 6 a d ワーク列M列M1に=INDEX($B$2:$F$7,INT((ROW()-1)/5)+1,MOD(ROW()-1,5)+1) と入れて30行まで式を複写。 上部だけあげると M列 N列 a 1 b 1 a 2 c 1 e 1 0 b 2 0 0 0 b 3 a 3 a 4 f 1 ・・・以下略 N1に =IF(M1=0,"",COUNTIF($M$1:M1,M1))と入れてN30まで式を複写・ 上だけを示すと、上記N列の通り。 B11に式=OFFSET(B11,-9,0)&INDIRECT("N"&(ROW()-11)*5+(COLUMN()-1)) F11まで+ハンドルを引っ張り式を複写する。 B11:F11を範囲指定してB18:F16まで引っ張る。 A列、第10行に曜日と第何週をコピーしておく。 結果 A10:F16に 月 火 水 木 金 1 a1 b1 a2 c1 e1 2 b2 3 b3 a3 a4 f1 4 c1 5 d1 d2 6 a5 d3 のようになりました。
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
とりあえず、関数はあきらめて、VBAで回答を上げます。 A1:F6に 月 火 水 木 金 1 a b a c f 2 b 3 b a a f 4 c 5 d f a-fは会議名の代わりです。 コードは 標準モジュールに下記を貼り付けて、実行する。 a = Array("a", "b", "c", "d", "e", "f") '会議名 の部分を、本番では会議名を””(半角)で囲って増やしてください。 Sub test01() Dim cl a = Array("a", "b", "c", "d", "e", "f") '会議名 Dim kensu(20) '会議の種類数 For Each cl In Range("b2:F6") If cl = "" Then Else For j = 0 To UBound(a) If cl = a(j) Then kensu(j) = kensu(j) + 1 cl.Offset(0, 6) = cl & kensu(j) Exit For End If Next j End If Next End Sub 結果G1:L6に 月 火 水 木 金 1 a1 b1 a2 c1 f1 2 b2 3 b3 a3 a4 4 5 d1 番号は横に左から右、上から下に振ってます。 下側に出すことも可能です。 第1行の曜日、G列の週番号は、人手でコピーしてください。
- imogasi
- ベストアンサー率27% (4737/17069)
下記を補足してください。 たとえば 週 月 火 水 木 金 1 B A A 2 A B 3 A 4 B 5 上記のような表でよいですか。 >自動的に1~4まで連番を振ってくれると・・・ 連番を振った結果はどうなればよいのですか。
補足
わかりづらい表現に解答してくださってありがとうございます。 データはimogasiさんのほぼ、ご想像通りです。 それぞれの週を上下2行に分けて、予定が入った日にAと入れれば、その下に第何回目かを表示したいです。 同一セルに"A1"と表示させるのは無理ですよね?? できれば嬉しいですが...
お礼
大変長いこと放っておいてしまって済みません。 一度、このvbaを使ってみたのですが、何をどうして失敗したのか、うまくいきませんでした。 現在は、結局のところ別シートを作成し、そちらで縦長のカレンダーを作成し、会議名、カウント、会議名&カウントの3列をつくり、 元々の横へ曜日が伸びていくタイプのカレンダーから縦長カレンダーを参照する方法で対応いたしました。 2月末には少し余裕ができて、勉強できるかも知れません。そのときに教えていただいたVBAが動かせるように頑張りたいと思います。 ありがとうございまた。