[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『指定期間の週数を月ごとに出す方法』(がちゃぴ)
初めての質問です。
A1セルに日付
B1セルに週数
を記載しています。
A1の日付からB1の週数後を最終日として
指定月の週数を算出したいです。
※A1:2021/10/29
B1:2
の場合、10/29〜11/10が該当期間
週数の起算日はA1セルの日付です。
↓イメージ
A B C D 1 日付 週数 2 3 11月の週数 12月の週数 1月の週数 2月の週数
できれば関数でできるようにしたいのですが、可能でしょうか。
よろしくお願いします。
< 使用 Excel:Excel2016、使用 OS:Windows10 >
記載ミスです。
正しくは、10/29〜11/11です。
よろしくお願いいたします。
(がちゃぴ) 2021/12/01(水) 09:51
=TEXT(A1,"m/d")&"〜"&TEXT(A1+B1*7-1,"m/d")
こういうのですか?
(きまぐれおじさん) 2021/12/01(水) 09:57
コメントありがとうございます。
すみません、ちょっと違います…
週数は、何週間かをだしたいです。
例えば今回の場合で説明すると、
10/29〜11/11の期間の1日目が各月に何週分あるかをカウントしたいので、
★10/29★ 10/30 10/31 11/1 11/2 11/3 11/4
★11/5★ 11/6 11/7 11/8 11/9 11/10 11/11
10月は★で挟まれた日をカウントすることになるので「1」
11月も★で挟まれた日をカウントすることになるので「1」
としたいです。
他の例ですと、
日付11/4
週数6
の場合、期間が11/4〜12/15となるので
★11/4★ 11/5 11/6 11/7 11/8 11/9 11/10
★11/11★ 11/12 11/13 11/14 11/15 11/16 11/17
★11/18★ 11/19 11/20 11/21 11/22 11/23 11/24
★11/25★ 11/26 11/27 11/28 11/29 11/30 12/1
★12/2★ 12/3 12/4 12/5 12/6 12/7 12/8
★12/9★ 12/10 12/11 12/12 12/13 12/14 12/15
となり、
11月は「4」
12月は「2」
としたいです。
よろしくお願いいたします。
(がちゃぴ) 2021/12/01(水) 10:14
=MAX(0,NETWORKDAYS.INTL(MAX($A$1,EOMONTH($A$1,COLUMN(A1)-2)+1),MIN($A$1+$B$1*7-1,EOMONTH($A$1,COLUMN(A1)-1)),CHOOSE(WEEKDAY($A$1),"1111110","0111111","1011111","1101111","1110111","1111011","1111101")))
基準日の曜日が期間内に何回あるかを数えれば良い、ということならこんな感じでしょうか。
(きまぐれおじさん) 2021/12/01(水) 10:50
ありがとうございます。
関数が理解できなかったので、実際に試してみました。
「A1の日付の曜日を基準日として、A1の月にA1の日付以降何回その曜日があるか表示される」
という関数であっていますか?
(がちゃぴ) 2021/12/01(水) 11:02
きまぐれおじさんさん、 >CHOOSE(WEEKDAY($A$1),"1111110","0111111","1011111","1101111","1110111","1111011","1111101") 部分は SUBSTITUTE("1111111",1,0,WEEKDAY($A$1,2)) ともできる。
(ねむねむ) 2021/12/01(水) 11:07
A1が11月29日で週数が2週だった場合、
11月が「1」
だということはわかるのですが、
12月が「1」と出すためには、どうすればよいでしょうか…
何度もすみません。
(がちゃぴ) 2021/12/01(水) 11:11
がちゃぴさん、
「A1の日付の曜日を基準日として、A1の月にA1の日付以降何回その曜日があるか表示される」
↓
「A1の日付の曜日を基準日として、〔列番号-1〕ヶ月後にA1の日付以降B1週間以内に何回その曜日があるか表示される」
です。
そのため、上記関数をB列以降にコピーすると
A列:A1の当月
B列:A1の翌月
C列:A1の翌々月
・
・
・
というようになります。
なお、ねむねむさんの式が簡潔で良いので
=MAX(0,NETWORKDAYS.INTL(MAX($A$1,EOMONTH($A$1,COLUMN(A1)-2)+1),MIN($A$1+$B$1*7-1,EOMONTH($A$1,COLUMN(A1)-1)),SUBSTITUTE("1111111",1,0,WEEKDAY($A1,2))))
をお使いください。
A3セルに貼り付け後、右にフィルコピーしてください。
(きまぐれおじさん) 2021/12/01(水) 13:22
こんなのでワークしないですかね?
A3セル =SUMPRODUCT(N(EOMONTH($A2+7*(ROW($A1:INDEX($A:$A,$B2))-1),0)=EOMONTH($A2,COLUMN()-1))) 右にコピー
<結果図> 行 ___A___ __B__ _C_ 1 日付 週数 2 11月4日 6 3 4 2 0
(半平太) 2021/12/01(水) 14:43
きまぐれおじさんさん
解説ありがとうございます。
理解できました。
週数を表示する1月目が、A1の日付に左右されると思うのですが、
どんな日付でも、11月、12月、1月、2月のように固定された月の週数がわかるようにすることは
できますでしょうか?
(がちゃぴ) 2021/12/01(水) 16:07
日付のセルから月だけ参照して1月ずつプラスして横にずらせば表示できるのでは 12か月分用意しておけばスタート月は日付のセルの日付で変わるが12か月分表示は出来るのでは (なるへそ) 2021/12/01(水) 16:31
=SUMPRODUCT(N(EOMONTH($A1+7*(ROW($A1:INDEX($A:$A,$B1))-1),0)=EOMONTH(DATE(年,月,1),0)))
年と月のところは任意の年と月に変更してください。
(きまぐれおじさん) 2021/12/01(水) 16:32
無事にやりたい操作を実現することができました。
とても感謝しています。
本当にありがとうございました。
(がちゃぴ) 2021/12/01(水) 16:41
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.