
No.9
- 回答日時:
#No1・No3・No4です。
> 日付を検索値にするということは、月ごとにローテーションを作り直す
> ということでしょうか?
いいえ。そんなこと一度も書いてませんよね?
縦1列に土日祝日を除いた日付の表を作る
その横にローテーションを循環で並べる
指定月のデータだけ一覧表に表示させる
これだけです。
縦1列の日付データから カレンダーにデータを表示させるのは
VLOOKUPでも INDEX/MATCHでも SUMIFでできますね?
> カレンダーの作り方はもちろんわかるのですが
と書いてますからカレンダーは作れるんですよね?
次月になったらカレンダーを切り替えるだけですよ。

No.7
- 回答日時:
まず表の作り方ですが、
A1のセルの書式設定を ####"年" にしてください。(添付図参照)
B1のセルの書式設定を ##"月" にしてください。
これで、2018を入力すると2018年と表示されます。(月も同様です)
マクロでは2018の数値だけ使用するのでこのようにします。
次に日付ですが
B1に1、B2に2と入力し、2つのセルを同時に選択します。そして、そのまま右へオートフィルでコピーします。
そうすると、1から31の数字が作成されます。
次に曜日ですが、
B3へ
=TEXT(DATE($A$1,$B$1,B$2),"aaa")
と入力し、オートフィルで右へコピーします。そうすると曜日が作成されます。(例え4月でも、31日分まで作成してください)
次に祭日ですが、4月の場合30日が祭日なので、4行目の30日に該当するセルに○を入れてください。
(○でなくても構いません。そのセルが空欄でないならマクロは祭日であると判定します)
その他の見出し(固定文字を作成してください)
A10:D17の表は、マクロ実行時は必要ありませんのでなくても構いませんが、
ローテーションの確認の為にあなたが必要とするなら、その表も作成しておいてください。
以上で、準備が完了です。
以下のマクロを標準モジュールに登録してください。
--------------------------------------------------------
Option Explicit
Public Sub ローテーション作成()
Dim six As Long
Dim lastday As Long
Dim person As Variant
Dim col As Long
Dim dd As Long
person = Array("A", "B", "C", "D", "A2", "B", "C", "D", "A", "B", "C", "D", "A3", "B", "C", "D")
six = Cells(1, "D").Value
If six < 1 Or six > 16 Then
MsgBox ("開始番号不正")
End If
'配列は0~15なので0始まりに変える
six = six - 1
'月末日算出
lastday = Day(DateSerial(Cells(1, "A").Value, Cells(1, "B").Value + 1, 1) - 1)
'1日~月末日まで繰り返す
For dd = 1 To lastday
'日対応のカラム位置を取得
col = dd + 1
'土、日、祭日は空白を設定
If Cells(3, col).Value = "土" Or Cells(3, col).Value = "日" Or Cells(4, col).Value <> "" Then
Cells(5, col).Value = ""
Cells(6, col).Value = ""
Else
'以外はローテーションを設定
Cells(5, col).Value = person(six)
Cells(6, col).Value = six + 1
six = six + 1
If six > UBound(person) Then six = 0
End If
Next
MsgBox ("設定完了")
End Sub
----------------------------------------------------------------
マクロ実行時は、このシートを表示した状態で、「表示」タブからマクロを選択し
「ローテーション作成」を実行してください。


No.6
- 回答日時:
No5です。
提示された画像のローテーションが正しいなら、こちらで添付した画像のようなローテーションになるかと思います。
ローテーションの割り当てを実施時(マクロ実行時)に、D1へ開始番号を指定するのはいかがでしょうか。
例では15が指定されているので、Cから割り当てられます。
月末日の番号も表示されるので、次の月は、月末日の番号+1をD1へ指定します。(16の次は1に戻ります)
マクロで設定されるのは、青色の部分のみです。
もし、これでよければ、表の作成の方法(日付、曜日等)を更に提示します。(1回だけ作成すれば次の月はB1とD1を変えるだけです)


No.5
- 回答日時:
No2です。
補足ありがとうございました。>①別です
>人というか、係なのですが、Aという係が3つあるためその形にしました。
>ローテーションは「A→B→C→D」です。
了解しました。
念のため確認ですが、
ローテーションを全部書くと、
「A→B→C→D→A2→B→C→D→A3→B→C→D」となります
と述べていますが、
提示された表のローテーションは
A→B→C→D→
A2→B→C→D→
A→B→C→D→
A3→B→C→D→
A→B→C→D→
A2→B→C→D→
となっています。つまり、A,A2,A3のなかでAだけが多いのです。(Aは4週間に2回、A2は4週間に1回、A3は4週間に1回です)
どちらが正しいのでしょうか?
>②増えることはないです。
了解しました。
念のため確認ですが、BについてB3,B3が増えることはありますか?(C,Dについても同様)
回答ありがとうございますm(_ _)m
すみません
勘違いしてました(・・;)
表が正しいので、tatsu99様が記載していただいた通りになります。
A以外が増えることはありません
No.4
- 回答日時:
#No1・No3です。
> ローテーションにはなるのですが、これだと月を変えても、前の月の続
> きからとはならないと思うのですが...
何故???
縦一列に土日祝日を除いた日付を並べる
その横にローテーションを循環で並べる
後は 月を指定して表示される一覧表を作って 日付を検索値にして
担当者を検索/表示させる
ですよね。月がどうとか関係ないと思いますが。
度々の回答ありがとうございますm(_ _)m
理解しておらず申し訳ないのですが、
日付を検索値にするということは、月ごとにローテーションを作り直すということでしょうか?
No.3
- 回答日時:
#No1です。
> 縦一列で作成した場合の当番のローテーションの関数は
> どうなるのでしょうか?
ローテーションの表も縦一列に作って MOD関数で循環させ
ればいいだけです。ローテーションについての説明がありま
せんので 具体的な回答はできかねますが
A1:A10にローテーションを作っているなら
=INDEX(A:A,MOD(ROW(A1)-1,10)+1)
で縦に循環するはずです。
回答ありがとうございますm(_ _)m
ローテーションにはなるのですが、これだと月を変えても、前の月の続きからとはならないと思うのですが...
ローテーションを全部書くと、
「A→B→C→D→A2→B→C→D→A3→B→C→D」となります
No.1
- 回答日時:
> 土日祝日の削除も行いましたが
この表で祝日はどう削除するのですか?
というか………表の作り方を見直した方がいいのでは?
縦一列のカレンダーを作って そこに当番表を作成し そこから今の
表に検索系の関数で表示させればいいかと思います。
WORKDAY関数を使えば いちいち手作業で土日祝日を消す必要も
ないように思いますけど。
回答ありがとうございますm(_ _)m
手抜きで、今添付した画像は関数も何も入れてない状態なので、土日を消しただけのものです。
縦一列で作成した場合の当番のローテーションの関数はどうなるのでしょうか?
カレンダーの作り方はもちろんわかるのですが、ローテーションが作成できないのです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
エクセルで少し複雑な当番表を作成したい。
Excel(エクセル)
-
エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をお
その他(Microsoft Office)
-
エクセル 年間の当番表 ローテーションに振り分ける方法がわかりません。
Excel(エクセル)
-
-
4
Excelで当番表の作成(休み考慮、完全ランダム)
Excel(エクセル)
-
5
Excelにて年間の当番表作成したい
Excel(エクセル)
-
6
VLOOKUP関数を使い掃除当番表を作る
その他(Microsoft Office)
-
7
エクセルで当番表をつくりたいのですが、簡単な関数を使ってできません。私
PowerPoint(パワーポイント)
-
8
エクセルで旗当番表を作っています あとひといきなんですができません
Excel(エクセル)
-
9
エクセルで日付の入力で、土日祝を自動的に抜いて、営業日だけ表示したい
Windows Vista・XP
-
10
エクセルの当番表を作っていますが教えてください
Excel(エクセル)
-
11
エクセルの当番表を作りたいのですが
その他(Microsoft Office)
-
12
当番表を作りたい
Excel(エクセル)
-
13
当番表の作成
Excel(エクセル)
-
14
月曜日から、金 3人で3種類の、清掃 当番表の作り方エクセルで 基本的な関数の考え方、教えてください
Excel(エクセル)
-
15
エクセルでシフトをランダムで作るにはどうしたらいいでしょう
固定IP
-
16
日付表示の月が替わったら表示しない方法は?(エクセル)
Excel(エクセル)
-
17
「社長様いますか」という営業電話に、そろそろガツンと言いたい
ビジネスマナー・ビジネス文書
-
18
土日祝を空白にする関数を教えてください
Excel(エクセル)
-
19
エクセルで曜日に応じた文字を自動で入力したい
その他(Microsoft Office)
-
20
エクセル関数で1〜12の数字がループするMOD関数はできたのですが、7.8.9.10.11.12.7
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
エクセルでENTERを押すと数式が...
-
エクセル関数で日付かどうかの...
-
Excelで更新日時と更新者を表示...
-
入力後に日付順になるように自...
-
日付だけを変更して印刷(Excel)
-
エクセルで日付を別のシートに...
-
エクセルで数字列の間に『/』を...
-
日付を入力したセルをファイル...
-
エクセルのセルにカレンダーを...
-
☆Excelエクセルで入力した日の...
-
Excelで、年だけの「西暦」から...
-
Excelで半年後の日付を計算したい
-
日付入力→指定のセルの色を塗り...
-
エクセルで1年後の月末を表示さ...
-
エクセル 当番表の作り方 エク...
-
ファイルのオープン時に今日の...
-
Excelで8/26等の日付を全てその...
-
エクセル グラフ 軸の日付表記...
-
Excelに入力した個々の日付の数...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
31:30:00が1900/1/1 7:30:0
-
日付だけを変更して印刷(Excel)
-
入力後に日付順になるように自...
-
エクセルでENTERを押すと数式が...
-
エクセル関数で日付かどうかの...
-
日付入力→指定のセルの色を塗り...
-
Excelで、年だけの「西暦」から...
-
☆Excelエクセルで入力した日の...
-
ファイルのオープン時に今日の...
-
エクセルで日付を別のシートに...
-
エクセルで数字列の間に『/』を...
-
エクセルのセルにカレンダーを...
-
WORDで翌日や翌々日の日付を表...
-
エクセル 当番表の作り方 エク...
-
Excelで8/26等の日付を全てその...
-
Excelで、本日、前日、1週間前...
-
EXCELで直近の日付を抽出する関数
-
◆ EXCEL自動入力日付を自動で...
-
Excelに入力した個々の日付の数...
-
Excelで更新日時と更新者を表示...
おすすめ情報