Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


2999 / 13646 ツリー ←次へ | 前へ→

【64827】ある月の曜日の数 初心者 10/3/16(火) 20:14 質問[未読]
【64829】Re:ある月の曜日の数 ichinose 10/3/16(火) 22:25 発言[未読]
【64835】Re:ある月の曜日の数 初心者 10/3/18(木) 0:20 質問[未読]
【64836】Re:ある月の曜日の数 ichinose 10/3/18(木) 7:58 発言[未読]
【64837】Re:ある月の曜日の数 訂正 ichinose 10/3/18(木) 8:43 発言[未読]
【64849】Re:ある月の曜日の数 訂正 初心者 10/3/18(木) 21:51 質問[未読]
【64851】Re:ある月の曜日の数 訂正 ichinose 10/3/19(金) 6:08 発言[未読]
【64855】Re:ある月の曜日の数 初心者 10/3/19(金) 14:47 お礼[未読]

【64827】ある月の曜日の数
質問  初心者  - 10/3/16(火) 20:14 -

引用なし
パスワード
   例えばA1に2010/3/1と入力してあります。

2010年3月の月曜日の日数を表示する数式はどのように
入力すればいいのでしょうか。

ご教授よろしくお願いします。

【64829】Re:ある月の曜日の数
発言  ichinose  - 10/3/16(火) 22:25 -

引用なし
パスワード
   ▼初心者 さん:
こんばんは。

>例えばA1に2010/3/1と入力してあります。
>
>2010年3月の月曜日の日数を表示する数式はどのように
>入力すればいいのでしょうか。


=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(9-WEEKDAY(A1),7))/7,0)

試してみてください

【64835】Re:ある月の曜日の数
質問  初心者  - 10/3/18(木) 0:20 -

引用なし
パスワード
   ▼ichinose さん:
>=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(9-WEEKDAY(A1),7))/7,0)

ご返信ありがとうございます。
この数式、どの部分を変更すれば月曜だけでなく、火曜や水曜なども
計算できるのでしょうか?
WEEKDAY(A1),7←この部分の変更になるのでしょうか

【64836】Re:ある月の曜日の数
発言  ichinose  - 10/3/18(木) 7:58 -

引用なし
パスワード
   おはようございます。

>>=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(9-WEEKDAY(A1),7))/7,0)
>
>ご返信ありがとうございます。
>この数式、どの部分を変更すれば月曜だけでなく、火曜や水曜なども
>計算できるのでしょうか?
>WEEKDAY(A1),7←この部分の変更になるのでしょうか

数式の解読は大変ですよね、作る側はよいけどねえ!!

Weekdayという関数があります。

指定した日付の曜日が

日 月 火 水 木 金 土  に対し、
1  2  3  4  5  6  7  という数値を返します。

例 セルA1に 2010/3/1 と入力し、
  セルA2に =weekday(a1) で2を返します。
  2010/3/1は、月曜日ですからねえ。


では、元の数式の戻って、月曜日の日数は、

=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(7+2-WEEKDAY(A1),7))/7,0)

9を分解すると このようになります。

火曜日の日数なら

=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(7+3-WEEKDAY(A1),7))/7,0)

水曜日なら

=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(7+4-WEEKDAY(A1),7))/7,0)


日曜日なら

=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(7+1-WEEKDAY(A1),7))/7,0)

                           

【64837】Re:ある月の曜日の数 訂正
発言  ichinose  - 10/3/18(木) 8:43 -

引用なし
パスワード
   数式のMod関数は賢いから

>Weekdayという関数があります。
>
>指定した日付の曜日が
>
>日 月 火 水 木 金 土  に対し、
>1  2  3  4  5  6  7  という数値を返します。
>
>例 セルA1に 2010/3/1 と入力し、
>  セルA2に =weekday(a1) で2を返します。
>  2010/3/1は、月曜日ですからねえ。
>
>
>では、元の数式の戻って、月曜日の日数は、
>
=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(2-WEEKDAY(A1),7))/7,0)
>
>9を分解すると このようになります。
>
>火曜日の日数なら
>
=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(3-WEEKDAY(A1),7))/7,0)
>
>水曜日なら
>
=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(4-WEEKDAY(A1),7))/7,0)
>
>
>日曜日なら
>
=ROUNDUP((DAY(DATE(YEAR(A1),MONTH(A1)+1,0))-MOD(1-WEEKDAY(A1),7))/7,0)
>
>                           
これで良いですね!!

【64849】Re:ある月の曜日の数 訂正
質問  初心者  - 10/3/18(木) 21:51 -

引用なし
パスワード
   ▼ichinose さん:

非常にご丁寧な説明ありがとうございました。
本当にわかりやすかったです。

あと、1点悩みがあります。

月の曜日の数を計算する際、
次に必要なのが、
例えば3/1〜3/15までの曜日の数を計算しないといけないのです。
これは3/1〜3/15の時もあれば、3/1〜3/20まででの期間で
曜日の数を調べたい時もあります。

この場合、どうすれば調べることができるのでしょうか

【64851】Re:ある月の曜日の数 訂正
発言  ichinose  - 10/3/19(金) 6:08 -

引用なし
パスワード
   おはようございます。
>非常にご丁寧な説明ありがとうございました。
>本当にわかりやすかったです。
>
>あと、1点悩みがあります。
>
>月の曜日の数を計算する際、
>次に必要なのが、
>例えば3/1〜3/15までの曜日の数を計算しないといけないのです。
>これは3/1〜3/15の時もあれば、3/1〜3/20まででの期間で
>曜日の数を調べたい時もあります。
>
仮に

セルA1に 2010/3/1
セルB1に 2010/3/15
と入力されているとするとこの期間の月曜日の数は

=(B1-A1+1-MOD(2-WEEKDAY(A1),7)>0)*(ROUNDUP((B1-A1+1-MOD(2-WEEKDAY(A1),7))/7,0))

となります(月曜日の数は、3)。


セルA1、B1を変化させて試してみてください。
A1は、何も月初めでなくてもよいです。

A1  2010/3/10
B1  2010/3/26

なんてすると、数式は 2となります。

【64855】Re:ある月の曜日の数
お礼  初心者  - 10/3/19(金) 14:47 -

引用なし
パスワード
   ▼ichinose さん:

悩み、全て解決できました。
1から10までご解説いただきまして、本当にありがとうございました。
本当に助かりました。

2999 / 13646 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free