- ベストアンサー
EXCEL 前月分の日付を自動で入力したいです。
EXCELにて、A1~A31のセルに日付をyyyy/mm/dd形式で入力したいです。 その際、そのファイルを開いた日の前月分の日付を自動で入力する方法はありませんでしょうか? ファイルを開いた日が本日(2008/1/31)であれば、A1~A31に「2008/12/1」~「2008/12/31」が自動で入るようにしたいのです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
=DATE(YEAR(NOW()),MONTH(NOW())-1,1) とすると、今現在の日の前月の1日が入ってきます。 あとは、...,2) ...,3)とやっていけば、2日、3日が表示されます。 ただしこの方法だと、小の月の時に上手く行きませんので、29日以降の 日付には「28日の月と月が違ったら表示しない」などの工夫が必要です。 =IF(MONTH(A28)<>MONTH(NOW()),DATE(YEAR(NOW()),MONTH(NOW())-1,29),"") ちなみにこの方法だと、「今現在」の前月が常時表示されますので、 ブックを開くたびに日付が更新されます。仕様上それで良ければいいの ですが、前回保存した日などで固定したい場合は、既存の関数だけじゃ 多分上手く行かないと思います。
その他の回答 (2)
- mshr1962
- ベストアンサー率39% (7417/18945)
29日以降の調整は必要ですが数式は下記のものをA31までコピーでOK A1=DATE(YEAR(TODAY()),MONTH(TODAY())-1,ROW()) 29~31を制限する方法 1.「条件付き書式」で文字色を白にして見えなくする方法 A29:A31を選択して「書式」「条件付き書式」で 「セルの値が」「次の値以上」「=DATE(YEAR(TODAY()),MONTH(TODAY()),1」 で書式ボタンを押して、文字色を白にする 2.IF文で制御 A29=IF(MONTH(TODAY())=MONTH(DATE(YEAR(TODAY()),MONTH(TODAY())-1,ROW())),"",DATE(YEAR(TODAY()),MONTH(TODAY())-1,ROW())) としてA31までコピー
お礼
お礼が遅くなりまして申し訳ありません。 うまく行きました。 ありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
A1に =DATE(YEAR(TODAY()),MONTH(TODAY())-1,1) A2に =IF(A1="","",IF(MONTH(A1)=MONTH(A1+1),A1+1,"")) と入力し、A2を選択した状態でA2セルの右下の角にカーソルを合わせ、+表示になったらそのままA31まで引っ張って式をコピーしてみてください。
お礼
お礼が遅くなりまして申し訳ありません。 うまく行きました。 ありがとうございました。
お礼
お礼が遅くなりまして申し訳ありません。 うまく行きました。 ありがとうございました。