No.7ベストアンサー
- 回答日時:
回答No.4です。
済みません、「2014年3月」等の様に、年月が入力されているセルとして参照しているセルが、回答No.4の関数においてはC2セルではなく、C3セルになっておりました。
後それから、C2セルに入力されている関数が、例えば、
=DATE(2014,3,2)
等の様に、その月の"1日以外の日付"を返す様なものとなっていた場合(表示だけは「2014年3月」のままになります)には、誤った日数を返してしまう事に、後から気付きました。
ですから、第1、第5、第6週の日付を求める関数を次の様に改良致しました。(第2週目、第3週目、第4週目の日数を求める関数に関しては変更する必要は御座いません)
【第1週目の日数を求める関数】
=IF(ISNUMBER(1/DAY($C$2)),7-WEEKDAY(TEXT($C$2,"yyyy/m"),3),"")
【第5週目の日数を求める関数】
=IF(ISNUMBER(1/DAY($C$2)/(TEXT($C$2,"yyyy/m/")&29-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),MIN(7,DATE(YEAR($C$2),MONTH($C$2)+1,1)-DATE(YEAR($C$2),MONTH($C$2),29-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),"")
【第6週目の日数を求める関数】
=IF(ISNUMBER(1/DAY($C$2)/(TEXT($C$2,"yyyy/m/")&36-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),MIN(7,DATE(YEAR($C$2),MONTH($C$2)+1,1)-DATE(YEAR($C$2),MONTH($C$2),36-WEEKDAY(TEXT($C$2,"yyyy/m"),3))),"")
因みに、私の方法と、回答No.2様の方法の場合は、C2セルに年と月を指定する値が入力されてさえいれば、各週の日付をそれぞれ独立して求める事が出来ますので、質問者様の添付画像の例に写っている様な、B列の「日付」欄やC列の「曜日」欄等の、補助列は必要御座いません。
尚、私の方法では、存在しない週の所には何も表示されない様になっております。
No.6
- 回答日時:
添付の画像を無視させて頂きます。
>月曜から日曜までを1週とする場合の週毎の日数が知りたいです。
C2セルに月の初日が入力されていることを条件とします。
第1週の日数はその月の8日から初日のWEEKDAY関数からの返り値を差し引けば良いでしょう。
E5=8-WEEKDAY($C$2,2)
第2週から第4週は7日の固定となります。
第5週以降は次の式で算出できます。
質問の例では第6週まであります。
E9=IF(SUM(E$5:E8,7)<DAY(EOMONTH($C$2,0)),7,IF(SUM(E$5:E8)=DAY(EOMONTH($C$2,0)),"",WEEKDAY(EOMONTH($C$2,0),2)))
Excel 2013で検証しましたがExcel 2007でも同様に算出できると思います。
No.5
- 回答日時:
こんにちは!
すでに色々回答は出ていますので、参考程度で・・・
作業用の列を使う方法です。
すでに数式をお考えのようですので、余計なお世話かもしれませんが、
↓の画像で
B5(セルの表示形式はユーザー定義から d としています)に
=IF(MONTH(C$2+ROW(A1)-1)=MONTH(C$2),C$2+ROW(A1)-1,"")
C5セルに
=IF(B5="","",TEXT(B5,"aaa"))
という数式を入れ、B5・C5を範囲指定 → C5セルのフィルハンドルで31日までの35行目までオートフィルでコピー!
作業列のG4セルには単に
=ROW()
G5セルに
=IF(OR(B5=EOMONTH(C$2,0),C5="日"),ROW(),"")
という数式を入れ35行目までコピーしておきます。
最後にE5セルに
=IFERROR(SMALL(G:G,ROW(A2))-SMALL(G:G,ROW(A1)),"")
という数式を入れオートフィルで下へコピー!
これで画像のような感じになります。m(_ _)m
No.4
- 回答日時:
第1週目の日数を求める関数の一例は
=IF(ISNUMBER(1/DAY($C$3)),7-WEEKDAY($C$3,3),"")
です。
第2週目、第3週目、第4週目の日数を求める関数一例は
=IF(ISNUMBER(1/DAY($C$3)),7,"")
です。
第5週目の日数を求める関数一例は
=IF(ISNUMBER(1/DAY($C$3)/(TEXT($C$3,"yyyy/m/")&29-WEEKDAY($C$3,3))),MIN(7,DATE(YEAR($C$3),MONTH($C$3)+1,1)-DATE(YEAR($C$3),MONTH($C$3),29-WEEKDAY($C$3,3))),"")
です。
第6週目の日数を求める関数一例は
=IF(ISNUMBER(1/DAY($C$3)/(TEXT($C$3,"yyyy/m/")&36-WEEKDAY($C$3,3))),MIN(7,DATE(YEAR($C$3),MONTH($C$3)+1,1)-DATE(YEAR($C$3),MONTH($C$3),36-WEEKDAY($C$3,3))),"")
です。
No.3
- 回答日時:
追記。
ANo.1の回答の方が簡単ですが、ANo.1の回答は、1~3週目の日数が判らないと4週目の日数が判らない、1~4週目の日数が判らないと5週目の日数が判らない、1~5週目の日数が判らないと6週目の日数が判らないので、単独では計算できません。
当方の回答は複雑ですが、その代わり、それぞれを単独で計算できます。
あとANo.1の回答は「4週目の日数」を計算してますが、4週目の日数は「常に7日」なので計算する必要はありません。
一応、2010年1月~2037年12月の28年分で検証しましたが、どちらも答えが一致しました(曜日と日付の組み合わせは28年周期で循環するので28年分だけ試せばよい)
No.2
- 回答日時:
1週目は
=MOD(8-WEEKDAY(TEXT(C2,"yyyy/mm/")&"01"),7)+1
の式で計算できます。
2~4週目は「7」で固定です。
問題は、5、6週目。月によって、4週しかなかったり、5週しか無かったり、6週あったりします。
その月が何週あるのかは「末日の週番号から初日の週番号を引く」事により求められます。
最後の週(5週目か6週目のどちらか)は「翌月の初日の曜日」から計算できます。
5週目は
=CHOOSE(WEEKNUM(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1)-1,"yyyy/mm/dd"),2)-WEEKNUM(TEXT(C2,"yyyy/mm/")&"01",2)-2,0,MOD(WEEKDAY(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1),"yyyy/mm/dd"))+4,7)+1,7)
の式で計算できます。
6週目は
=IF(WEEKNUM(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1)-1,"yyyy/mm/dd"),2)-WEEKNUM(TEXT(C2,"yyyy/mm/")&"01",2)<>5,0,MOD(WEEKDAY(TEXT(DATE(YEAR(C2),MONTH(C2)+1,1),"yyyy/mm/dd"))+4,7)+1)
の式で計算できます。
なお「5週目が無い(4週しかない)」や「6週目が無い(5週しかない)」と言う場合、存在しない週は「0」になります。
No.1
- 回答日時:
当月1,2日が日曜の場合、第6週がある可能性もあります。
E5=8-WEEKDAY(DATE(YEAR($C$2),MONTH($C$2),0))
E6=7
E7=7
E8=MIN(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E7),7)
E9=MIN(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E8),7)
E10=MAX(DAY(DATE(YEAR($C$2),MONTH($C$2)+1,0))-SUM(E5:E9),0)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの祝日に色が反映しない 4 2022/05/18 09:58
- Excel(エクセル) Excel2019、2021の日付、曜日の表示について 2 2022/11/29 15:01
- Excel(エクセル) 週毎の集計 2 2023/08/04 16:56
- Excel(エクセル) 当番表の作成 2 2022/06/15 07:40
- 求人情報・採用情報 月単位、週40時間の変形労働時間制で、 日曜祝日土曜半日の固定休+シフト制(平日一日)の企業の場合、 1 2023/08/10 23:43
- Excel(エクセル) ExcelにおけるVLOOKUPでの祝日表示について 5 2022/09/18 22:23
- Excel(エクセル) エクセルの条件付き書式について エクセルでカレンダーを作りました。縦に日付が並んでいて、横にスケジュ 3 2022/10/10 15:32
- その他(恋愛相談) 私は21歳の女で精神疾患があります。 今月からアルバイトを日曜火曜木曜の週三日で始めましたが、2週間 5 2022/10/16 06:32
- 派遣社員・契約社員 残業時間について教えてください 5 2022/12/17 10:58
- Visual Basic(VBA) VBA 毎日取得するデータを順番に反映していく方法 6 2023/08/26 16:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelはなんで先頭の0を消すん...
-
Excel元に戻す方法を教えてくだ...
-
Excelが固まってしまった。
-
エクセルで特定の範囲内から小...
-
Excel 2019 のピボットテーブル...
-
テレビを購入してYouTubeのボタ...
-
Excel2013のF6キー操作について
-
西暦や和暦の表示をyyyymmdd表...
-
【関数】スペースがいくつ入っ...
-
【Microsoft Office Excel Comp...
-
Excelのオートフィル
-
別シートからの文字を変更
-
Excelのセルを飛ばして入力する
-
MOS365 Excel Expert / Excel R...
-
エクセルで指定した日付、店舗...
-
4つのパターンを表示するEXACT...
-
スマートな関数を教えて下さい。
-
【Excel】セル内の時間帯が特定...
-
Excel初心者です。 詳しい方、...
-
Excelで全角を半角にしたいので...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ファイル内にある数字の出現回...
-
Excel関数の先頭に「@」が入っ...
-
エクセルの気味悪い不思議
-
Excel VBAで、実行時にsheet上...
-
表示されている人数だけを数え...
-
他人が作ったマクロの理解
-
Excelの関数について質問です。
-
Excel 集計表
-
エクセル 日時の計算式について
-
Excelの関数に関して質問です。...
-
エクセル:セル内の文字列の下...
-
絞り込み検索
-
エクセルの関数で
-
エクセルの書式設定について教...
-
余分なEXCELファイルに印刷され...
-
VBA 同一シート内での転記の仕方
-
長期休みの関数はありますか
-
Excelの空のセル
-
エクセルで入力してある文を別...
-
Excelのマクロで、セルを結合し...
おすすめ情報