- ベストアンサー
EXCELで1か月分の総日数のもとめ方
給与計算などで使いたいのですが、例えば、1月分は 12/21~1/20の期間で総日数が31日となりますが 3月分は2/21~3/20で計算すると総日数は28日です。 実現させたいのは2003年1月分と入力すると自動的に どこかのセルに総日数を表示させるようにしたいのです。 かつ、年が変わっても反映される式はあるでしょうか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。maruru01です。 例えば、A1に年(2003)、B1に月(3)を入力するとします。 総日数を表示させたいセルに、 「=DAY(DATE(A1,B1,1)-1)」 と入力します。 要は、前月の末日が日数になるわけです。
その他の回答 (3)
- s-eight
- ベストアンサー率19% (6/31)
こんにちは。 こんなんでいかがでしょう。 A1に、年を入れます。 A2に、○月の○の数値だけ入れます。 A3に、月の最初の日を入れます。(質問の例なら、21) A4には、=DATE(IF(A2=1,A1-1,A1),IF(A2=1,12,A2-1),A3) と入れます。 A5には、=DATE(A1,A2,A3-1) A6には、=A5-A4 とすれば、A6に、総日数が出ると思いますが。 A4で給与算定月間の最初の日をつくり、A5はその最終日を作るんですが、月から単純に1をひいているだけなので、2003年1月度を計算しようとすると、2003年0月21日からになってしまうんで、IF関数で、2002年12月21日になるようにしています。 A6に直接 =DATE(A1,A2,A3-1)-DATE(IF(A2=1,A1-1,A1),IF(A2=1,12,A2-1),A3) でもいいですが。 ついでに、A1,A2,A3の表示形式を、ユーザー設定でそれぞれ数字の後ろに年、月、日がつくようにしたらいいでしょう。
お礼
ありがとうございました。 無事、解決できました。
- imogasi
- ベストアンサー率27% (4737/17070)
例えば3月はカウントが21日より始まるので、20日数えない代わり4月には20日加えるわけですから、3月の日数-20日+4月に入っての20日を加える=3月の日数となります。 A1セルに2003/3/20といれて、B1セルに式 =DAY(EOMONTH(A1,0))をいれると、B1に31となります。3月の月末日です。 A1セルには、2003/3/1から2003/3/31 までどれをいれても結果は同じ。
お礼
ありがとうございました。 無事、解決できました。
ワークシート関数だけで実現する方法はちょっとわかりませんが、少なくとも、DateDiff、DateSerial関数を使えばできます。 # 祝・休日を除外する、等の条件があると、めんどうかもしれません。
お礼
ありがとうございました。 無事、解決できました。
お礼
ありがとうございました。 無事、解決できました。