
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
No.3です。
前回回答の文章に誤りがありました。訂正してお詫びいたします。
(誤)全員一斉に「休」となることはという事態は発生しないという前提です。
(正)全員一斉に「休」となるという事態は発生しないという前提です。
No.3
- 回答日時:
t_fumiakiさんが、VBAを投稿されたので、関数による回答を投稿します。
26行目を作業用の行として使用しますので、目障りなら文字色を白にするとか、行自体を非表示にするなどの対応をお願いします。
また、Aさん、Bさん、Cさん、Dさんは、それぞれ「休」となることはあるが、同日に「休」となるのは最大3人までとし、全員一斉に「休」となることはという事態は発生しないという前提です。
まず、B24セルから「トイレ掃除」の表示がスタートしますが、誰からスタートするのかを決めなくてはいけません。
ご質問者の指定はA3セルから、つまり「Aさん」からスタートすることになっています。ここで、A3~A6セルに順番をつけA3=1番、A4=2番、A5=3番、A6=4番とすることにします。
添付画像をご覧ください。
A26セルに「誰からスタートするかを決めたとき、その一つ前の順番の人」の番号を入れます。
つまり、A3セル(Aさん)からスタートするなら、その一つ前の順番の人はA6セル(Dさん)ですので「4」を入力します。
続いてB26セルに、
=IF(INDEX(B$3:B$6,MOD(A26,4)+1)<>"休",MOD(A26,4)+1,IF(INDEX(B$3:B$6,MOD(A26+1,4)+1)<>"休",MOD(A26+1,4)+1,IF(INDEX(B$3:B$6,MOD(A26+2,4)+1)<>"休",MOD(A26+2,4)+1,MOD(A26+3,4)+1)))
という数式を記述し、右方向へオーフィル等で最終列までコピーします。
次にB24セルに、
=INDEX($A$3:$A$6,B26)
という数式を記述し、右方向へオーフィル等で最終列までコピーします。
これで、ご希望の結果が表示されると思います。
VBAの代わりを数式でやろうとしているので、長い数式にななってしまいますが、「休」が変更になったり、後から追加したりしたとき、イベントと連動させないVBAだと再実行しなければいけませんが、数式なら自動的に再計算され表示が修正されるというメリットはあります。


No.2
- 回答日時:
1回だけvbaで答を書きます。
コードの意味は、調べて下さい。
このサイトは半角字下げが出来ないので、全角字下げしてます。
プログラムでは全角を半角スペースに置き替えてね。
Dim WS1 As Worksheet
Set WS1 = Worksheets("Sheet1")
Cnt3 = 2
For Cnt1 = 2 To 12
For Cnt2 = 1 To 4
Cnt3 = Cnt3 + 1
If Cnt3 = 7 Then
Cnt3 = 3
End If
If WS1.Cells(Cnt3, Cnt1).Value <> "休" Then
WS1.Cells(24, Cnt1).Value = WS1.Cells(Cnt3, 1).Value
Exit For
End If
Next Cnt2
Next Cnt1
No.1
- 回答日時:
確認事項1
鍵当番と重なるのはOK?(っぽい!)
確認事項2
1/22にBさんが休みだから飛ばすのは理解できる。
1/24がBさんになっているのはそのため?
それならば次の日(25日)はAさんの当番にしなくてもよいのでしょうか?
多分、例のループの方が簡単な気がしますが、一応確認です。
本当は1/24がAさんに戻る(本当にBさんが1回休み)の方がもっと簡単。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
エクセルで少し複雑な当番表を作成したい。
Excel(エクセル)
-
エクセル 当番表の作り方 エクセルで土日祝日を除いた、平日のみの当番表を作りたいです。 カレンダーま
Excel(エクセル)
-
Excelで当番表の作成(休み考慮、完全ランダム)
Excel(エクセル)
-
-
4
Excelにて年間の当番表作成したい
Excel(エクセル)
-
5
C列にF列の担当者(A〜)を順番に入れて、当番表を作りたいです。 C列にいれる数式を教えてください。
Excel(エクセル)
-
6
エクセルで作成したカレンダーに「当番の名前」を自動的に入力する方法をお
その他(Microsoft Office)
-
7
エクセルで当番表を作成したいです。
Excel(エクセル)
-
8
エクセルで旗当番表を作っています あとひといきなんですができません
Excel(エクセル)
-
9
当番表の作成について
Excel(エクセル)
-
10
エクセル 年間の当番表 ローテーションに振り分ける方法がわかりません。
Excel(エクセル)
-
11
従業員増減対応で当番種類の増減対応な当番表
その他(Microsoft Office)
-
12
Excel 数式を入れているため、当番が繰り返し循環しない
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
vb.netです。2次元配列の要素を...
-
Escキーを押すと、中断する時と...
-
UWSCの終了の仕方
-
VBA Boxが空白の場合のメッセー...
-
一巡伝達関数と開ループ伝達関数
-
アクティブセルから、A列最終行...
-
CやJAVa,Rubyなどプログラミン...
-
イベントの発生を待つ
-
EXCEL VBA ユーザーフォームの...
-
VBAでの一時停止と再開の方法
-
システム安定性(ゲイン余裕/...
-
Do whileでExitせず、ループの...
-
配列にaaaからzzzまでの17576(2...
-
Excel VBAで、アクティブシート...
-
c#の for文について質問です。 ...
-
vbscriptでIE自動入力(途中で...
-
C言語でファクト関数を使わずに...
-
ループの途中でユーザーからの...
-
UWSCに制限時間を付けたいです
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画面を強制的に再描画させる方法
-
UWSCの終了の仕方
-
CSVファイルの特定の行だけを読...
-
範囲指定したセルを1つずつ飛...
-
UWSCに制限時間を付けたいです
-
Escキーを押すと、中断する時と...
-
乱数の桁数指定、または範囲指定。
-
VBA for i=1 to lastrow
-
流れ図(フローチャート)が分か...
-
DOSコマンドのループ内のTIMEコ...
-
pythonでファイルのコメント行...
-
素数表について。
-
VBAでの一時停止と再開の方法
-
「偶数・奇数の和」のフローチ...
-
DoEventsが必要な理由について
-
vb.netです。2次元配列の要素を...
-
Do whileでExitせず、ループの...
-
ループフリー
-
エクセルの当番表を作っていま...
-
VBAで3秒だけ時間を止めたい
おすすめ情報
回答ありがとうございます
確認事項1に関して役割が重なるのはOKです
確認事項2については画像が間違えてましたすみません
1/24がAさんに戻る(Bさんが1回休み)方が正しいです
よろしくお願いします