- ベストアンサー
エクセル 月の第○週が何日までか
セルA1に「2013」 セルB1に「12」 と入力されています。 セルC1に2013年12月の第1週目の最後の日付を表示するにはどうしたらいいのでしょうか? 上記の例では、表示は「7」です。 同様に、セルD1、E1、F1にそれぞれ2週目の最後の日付、3週目の・・・という風に表示させたいです。 G1セルには31と表示させたいです。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (5)
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
No.3 です。 ゼロを消す書式記号を「0;0;」と書きましたが、どちらかといえば「0;-0;」などとしないと、符号がなくなってしまいますね。 けれど今回、そもそも負数になることはあり得ないので、「0;;」だけで十分でした。 本題に関係ないことを含めてつまらないケアレスミスを連発してしまい、申し訳ありませんでした。
- kagakusuki
- ベストアンサー率51% (2610/5101)
>G1セルには31と表示させたいです。 との事ですが、月によっては第5土曜日が存在する月もありますから、月末の日付はH1セルに表示させる様にした方が良いと思います。 まず、C1セルに次の様な関数を入力して下さい。 =IF(ISNUMBER(($A1&"/"&$B1&"/"&7*COLUMNS($C:C)-WEEKDAY(DATE($A1,$B1,1))+1)+0),DATE($A1,$B1,7*COLUMNS($C:C)-WEEKDAY(DATE($A1,$B1,1))+1),"") 次に、H1セルに次の様な関数を入力して下さい。 =IF(ISNUMBER(($A1&"/"&$B1&"/1")+0),DAY(DATE($A1,$B1+1,)),"") そして、C1セルをコピーして、D1~G1の範囲に貼り付けて下さい。
- mshr1962
- ベストアンサー率39% (7417/18945)
通常で考えれば、7,14,21,28と固定の数字となり 最後にうるう年でない2月以外で29,30,31のいづれかだと思うのですが。。。 G1セルだけでいいなら =IF(AND(MOD(A1,4)>0,B1=2),"",DAY(DATE(A1,B1+1,0)))
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! >2013年12月の第1週目の最後の日付 とは毎週土曜日の日付、 >G1セルには31 すなわち、G1セルにはその月の月末の日付! という解釈でよろしいのでしょうか? もしそうであれば月によっては6週ある月がある場合がありますので、 H1セルまで表示させる場合もあると思います。 一例です。 どこか使っていないセルに =EOMONTH(DATE(A1,B1,1),-1)-WEEKDAY(EOMONTH(DATE(A1,B1,1),-1)-5,3) という数式を入れておきます。 これでA1セル年のB1セル月の前月の最終土曜日のシリアル値が表示されます。 これを利用すれば、後は単純に「7」ずつプラスしていけば毎週土曜日のシリアル値が表示されます。 仮に上記数式をK1セルに入れた場合は C1セル(セルの表示形式はユーザー定義から d としておきます)に =IF(MONTH($K1+7*COLUMN(A1))=$B1,$K1+7*COLUMN(A1),IF(B1=EOMONTH($K1,1),"",EOMONTH($K1,1))) という数式を入れH1セルまでオートフィルでコピーしてみてください。 ※ 解釈が間違っていたらごめんなさいね。m(_ _)m
お礼
回答ありがとうございます。 その解釈であってます。 なるほど。こういう考え方もあるのですね。 いろいろ変えて実験してみます!
- MarcoRossiItaly
- ベストアンサー率40% (454/1128)
お礼
回答ありがとうございます!!出来ました!!(こぴぺしただけですが・・・) 会社の勤務管理表を作っていて、今回の質問が出来る必要がありました。 この式にたどり着けるまで、自力だと5時間くらいみっちり考えないと 出てこなそうです(笑) まだ理解できてませんが、おいおい考えます。 ありがとうございます。