[[20200501133514]] 『一週間ごとの当番表をつくりたい』(まめしば) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『一週間ごとの当番表をつくりたい』(まめしば)

sheet1のA列に日付、B列に曜日、C列に当番表があるとします。
A列・B列の日付は1月1日から12月31日まであります。
当番は3名(田中→佐藤→鈴木)いて、一人一週間担当します。
C列に田中から始まり、佐藤、鈴木と続き、
鈴木の次は田中に戻るような関数(関数が無理ならVBA)が知りたいです。
土日と祝日は全て抜かすとします。
(別シートに祝日一覧があり、名前定義で祝日としている。)
よろしくお願いいたします。

【イメージ】
A  B  C
3/31 月 田中
4/1 火 田中
4/2 水 田中
4/3 木 田中
4/4 金 田中
4/5 土 (空白)
4/6 日 (空白)
4/7 月 佐藤
4/8 火 佐藤

< 使用 Excel:Excel2016、使用 OS:Windows10 >


A2 から日付データが入力されているとしました。

前提:日付は月曜日から始まることとします。

C2: =IF(OR(A2="",B2="土",B2="日",COUNTIF(祝日,A2)),"",CHOOSE(MOD(COUNTIF($B$2:B2,"月")-1,3)+1,"田中","佐藤","鈴木"))

必要数下にコピーします。
(メジロ) 2020/05/01(金) 14:07


 >A列・B列の日付は1月1日から12月31日まであります。 

 C2 =IF(WORKDAY(A2-1,1,祝日)>A2,"",CHOOSE(MOD(WEEKNUM(A2,2)-1,3)+1,"田中","佐藤","鈴木"))
 下コピー

 参考まで
(笑) 2020/05/01(金) 14:46

メジロ様
早速試してみたところ、まさに望んでいたのはこれでした!
感動です。一つ一つ関数の意味を調べてみます。
本当にありがとうございましたm(__)m
(まめしば) 2020/05/01(金) 14:53

(笑)様
こちらの関数でもできました!とても嬉しいです。
こちらもわからない関数があるのできちんと理解していきたいと思います。
どうもありがとうございましたm(__)m
(まめしば) 2020/05/01(金) 14:59

 訂正・・・というのか
 年が変わっても前年からの継続にする

 2020/1/1 を基準にして

 C2 =IF(WORKDAY(A2-1,1,祝日)>A2,"",CHOOSE(MOD(INT((A2-("2020/1/1"-WEEKDAY("2020/1/1",2)+1))/7),3)+1,"田中","佐藤","鈴木"))

 参考まで
(笑) 2020/05/01(金) 15:27

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.