毎々皆様の御教授感謝しております。
さて、題記の件、月間予定表なるを作成中しているのですが・・・
予定リスト カレンダー
| | | | 1日 | 2日 |
| | | |---- |---- |
| | | | | | | |
|予| 予 | 作|予| 予 |予| 予 |
|定| 定 | 業|定| 定 |定| 定 |
|番| 内 | 者|番| 内 |番| 内 |
|号| 容 | A|号| 容 |号| 容 |
| | | | | | | |
| | | |-----|-----|
| | | | | | | |
| | | 作|予| 予 |予| 予 |
| | | 業|定| 定 |定| 定 |
| | | 者|番| 内 |番| 内 |
| | | B|号| 容 |号| 容 |
| | | | | | | |
| | | |-----|-----|
上記のような形で、カレンダー部の予定番号を入力し、「VLOOKUP」で予定リストを参照し予定内容をカレンダーに反映させています。
ここでカレンダー部へ予定番号の入力漏れの無いように予定リストの横にチェックを入れる為に
=IF(A3=I3,"入力済み",IF(A3=I4,"入力済み",IF(A3=I4,"入力済み",IF(A3=I5,"入力済み",IF(A3=I6,"入力済み",IF(A3=I7,"入力済み",IF(A3=I8,"入力済み",IF(A3=L3,"入力済み"・・・,"未入力")・・・)))
と考えましたが「IF」は7つまでなんですね。何か良い関数は無いものでしょうか?
可能であれば「入力」「未入力」を表示させるのでなく、カレンダー部へ入力した日付を表示させたく考えております。
長くなってしまいましたが宜しくお願い致します。
No.3ベストアンサー
- 回答日時:
A B C I J K L
1 予定リスト 1日 2日
2 予定番号 予定内容 予定番号 予定内容 予定番号 予定内容
3 1010 あああ102 <式> 5010 えええ999
4 1020 あああ103 入力済み 3990 えええ777
5 9990 あああ201 1020 あああ103
6 9980 あああ205 入力済み 9980 あああ205
7 5010 えええ999 入力済み
8 4010 えええ888
9 3990 えええ777 入力済み
上のような表を想定します。
カレンダー部は31日まであって、I列からBR列とします。
J3セルには =VLOOKUP(I3,$A:$B,2,0) が入ります(既にこうなっている?)
C3セルには =IF(COUNTIF($I:$BR,A3)<>0,"入力済み","")
として、必要な行数、下方向にコピーします。
質問には書いてありませんが、予約番号には重複はないだろうとの予測で、
入力範囲内の該当予約番号をカウントしています。1つでもあれば入力済みにしています。
No.5
- 回答日時:
問題の細部まで理解できたかどうか分かりませんが、一部は想像で
(1)この程度(と言うかちょっとビジネス向け)のことを処理しようとすると、VBAを使わないとどうしようもないと日頃思っているので、VBAで考えて見ました。
こちらもセル探し(Cell(X,Y)のX、Yの割り出し方のこと)にパズル的なところがありますが。
(Sheet2)A1:C9の当初データ。
予定内容を入力するフェーズ。
予定番号予定内容人数
1会場下見0
2主催者へ挨拶0
3出演者案内0
4会場片付け0
5機器移動0
6出演者リハ立会い0
7出演交渉0
8精算0
(Sheet3)
担当者と予定番号を日別に入力。
予定内容は=IF(B2="","",VLOOKUP(B2,Sheet2!$A$2:$B$30,2))を入れて、縦方向に複写。
C,E,G,I、・・列でも複写して、下方向へ複写は同じ。
作業者1日2日3日4日
山田1会場下見2主催者へ挨拶5機器移動
秋山3出演者案内
久保4会場片付け
久保5機器移動
本田6出演者リハ立会い
山田7出演交渉
山田8精算
(VBAコード)
VBEの標準モジュール画面に
Sub test02()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet3")
d1 = sh1.Range("a2").CurrentRegion.Rows.Count
d2 = sh2.Range("a2").CurrentRegion.Rows.Count
For i = 2 To d1
sh1.Cells(i, "c") = 0
Next i
'------------
For i = 2 To d2
For j = 2 To 62 Step 2
If sh2.Cells(i, j) <> "" Then
MsgBox sh2.Cells(i, j)
If sh2.Cells(i, j) > d1 Then GoTo err
x = sh2.Cells(i, j) 'Sheet2の行事番号
z = sh1.Cells(x + 1, 3) '従事人数
sh1.Cells(x + 1, z * 2 + 4) = sh2.Cells(1, j) '第1行は日付
sh1.Cells(x + 1, z * 2 + 5) = sh2.Cells(i, "A") 'A列は担当者
sh1.Cells(x + 1, 3) = sh1.Cells(x + 1, 3) + 1
End If
Next j
Next i
'-------------
Exit Sub
err:
MsgBox "予定番号エラー"
End Sub
Set sh1 = Worksheets("sheet2")
Set sh2 = Worksheets("sheet3")
の””の中は、本番のシート名でそれぞれ置き変えること。
これをショートカットかボタンかメニュに登録して
予定を増やしたり、担当者を増やしたりした時に実行する。
(結果)Sheet2のC1:G9
人数日担当者日担当者
11日山田
12日山田
12日秋山
13日久保
24日山田4日久保
14日本田
14日山田
14日山田
となりました。
関数で出来ないことはないかも知れませんが、人数の可変に対処など難しそう。
この回答への補足
回答ありがとうございます。
やはりVBAが必要になってくるのでしょうか・・・。
カレンダー部へ予定番号の入力の重複は無いとしても無理なものでしょうか。
お手数をおかけしますがご指導願います。
No.4
- 回答日時:
発想を変えて1行1レコードではだめでしょうか。
1行にカレンダーも作業者もごっちゃにはいると一見やりにくそうですが、後から並び替えはできますし、オートフィルタをつけておけば、抽出も可能です。
一般的にデータベースは、1行1レコードが原則ですし、その他の処理もやりやすくなります。
その前提で、以下のような表を想定します。
A B C D I J K L
作業番号 予定内容 作業者 予定日 | 作業者 予定日 予定番号 予定内容
A AAAAA 田中 04/07/18 | 田中 04/07/18 A AAAAA
B BBBBB 佐藤 04/07/20 | 松本 04/07/19 C CCCCC
C CCCCC 松本 04/07/19 | 佐藤 04/07/20 B BBBBB
(上記表はずれてますが、ノートパッドに貼り付けると整列します)
L列は、VLOOKUPで作業内容を参照していますが、
それぞれCおよびD列には、以下の関数が入ります。
C3=IF(COUNTIF($K$2:$K$1000,$A2)=0,"予定なし",INDEX($I$2:$K$1000,MATCH($A2,$K$2:$K$1000,0),1))
D3=IF(COUNTIF($K$2:$K$1000,$A2)=0,"予定なし",INDEX($I$2:$K$1000,MATCH($A2,$K$2:$K$1000,0),2))
とすれば、右の表から該当する作業者名と作業日を引っ張ってきます。
また、該当がない場合は、予定なしと表示します。
度々の御教授ありがとうございます。
しかしながら見たままを印刷してカレンダーにしてしまいたいのでこの方法では難しいかと存じます。(しかも私以外の人が)
せっかくの御教授いただいたのに申し訳ありません。
No.1
- 回答日時:
私の場合、力技ですが、別シートを使いました。
つまり、
IF(Sheet1!A3=Sheet1!I3,1,0)
IF(Sheet1!A3=Sheet1!I4,1,0)
IF(Sheet1!A3=Sheet1!I5,1,0)
としておいて、これらの数字を合計する。そして
IF(Sheet2!A10>0,'入力済み','未入力')
(A10に合計が入っているとして)
セルがずれているので、どれが日付か判りませんが、
IF(Sheet1!A3=Sheet1!I3,Sheet1!C0,"")
(c0が日付として)
としておいて、文字列をconcatenateで結合。
そして、
IF(Sheet2!A10="",'',Sheet2!A10)
…力技ですね。
この回答への補足
見難くて申し訳ございません。
早速の回答ありがとうございます。
しかしながらせっかく回答いただきましたがシートを月ごとに作成しているもので、これ以上シートは増やすのは・・・。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイントの表
-
パワーポイント「スライドショ...
-
音声マークを一括非表示にしたい。
-
PowerPointのスライドの途中で...
-
ExcelのグラフをPowerPointに貼...
-
エクセル・パワーポイントなど...
-
PowerPointのアニメーションで...
-
パワーポイントで説明しながら...
-
サブスクリプションが必要です ...
-
パワーポイント 印刷をクリック...
-
PowerPointのスライドショーで...
-
パワーポイントモバイル 印刷時...
-
Vba 白黒印刷で網掛けが消える...
-
PowerPointのスライドショウ実...
-
【パワーポイントのフォントが...
-
パワーポイントのアニメーショ...
-
パワーポイントMacBookにて、 ...
-
ホワイトボード 油性マジックの...
-
PowerPointで、作成されたファ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パワポで曲がった両矢印の簡単...
-
パワーポイントの表
-
パワーポイント「スライドショ...
-
音声マークを一括非表示にしたい。
-
PowerPointのスライドの途中で...
-
PowerPointで、作成されたファ...
-
エクセル・パワーポイントなど...
-
PowerPointでスライドマスタの...
-
PowerPointのアニメーションで...
-
会社のMicrosoft365のライセン...
-
パワーポイント、円グラフの1...
-
パワーポイント2019 図の透...
-
無料のブレゼンソフトでも講演...
-
【パワーポイントのフォントが...
-
PowerPointVBAでスライドマスタ...
-
パワーポイントをプロンプター...
-
ExcelのグラフをPowerPointに貼...
-
PowerPointで、線を点滅した感...
-
パワーポイントMacBookにて、 ...
-
卒論発表があります。5分ほどの...
おすすめ情報