- ベストアンサー
エクセルで月末の日付表示
A1に2019/01/00(標準) と入っています。 B1にその月の月末を表示させる方法はありますか? うるう年の日付も出せるような式が欲しいです。 よろしくおねがいします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
> 月末の日付のみを表示させたいです > この場合31と出したいです =DAY(EOMONTH(DATEVALUE(LEFT(A1,FIND("/",A1,FIND("/",A1,1)+1))&"1"),0))
その他の回答 (7)
- NuboChan
- ベストアンサー率47% (785/1650)
私に提示したA1セルの日付は、"2019/01/01”で"2019/01/00"では有りません。 2019/01/00など日付が00で始まるのは、数値DATAとしては、非常識です。 >43496とでました。 セルの書式を日付にすると、"2019/01/31"と表示されます。 ------------------- 日付のみで良ければ、 =DAY(=EOMONTH(A1,0)) =DAY(DATE(YEAR(A1),MONTH(A1)+1,0 )) ただし、この場合は、セルの書式を日付にする必要は無い。
お礼
ありがとうございます。
- nishi6
- ベストアンサー率67% (869/1280)
セルA1に「2019/01/00」と入力されているため、A1を使う算式は、文字列を扱うことになります。 月日が2桁表示とすると、セルB1:=DATE(LEFT(A1,4),MID(A1,6,2)+1,0) のようにすれば、当月の月末になります。書式を日付「yyyy/mm/dd」にします。 セルA1から年・月を取り出し、翌月「+1」の1日の前日0日を表示させています。 なぜ、このような算式にしなければいけないかの理由は、セルA1が有り得ない日付だからです。関数では、0日の指定ができたりしますが、直接入力すると文字列扱いになり、日付としての計算は面倒になります。 このような場合は、セルを文字列にして、「2019/01」の様に入力したらどうでしょうか。こうすれば、年月の入力文字列を関数で利用時、1日を補完してくれるので日付関数が使いやすくなります。添付図のセルB7がそれにあたります。 どうしても「2019/01/00」と表示する必要がある場合は、「2019/01」と入力し、書式を「@"/00"」とすれば、見た目と入力値も使いやすくなると思います。 当方、win10、Excel2010です。ご参考に。
お礼
わかりやすい説明ですね ありがとうございます。
- bunjii
- ベストアンサー率43% (3589/8249)
>A1に2019/01/00(標準)と入っています。 A1に「2019/01/00」と入れるのは非常識です。 カレンダーの日付で◯年△月00日はありません。 実在する日付を入れないとExcelの機能では面倒な前処理をしなければなりません。 前回の質問(https://okwave.jp/qa/q9667771.html)と同様の考え方です。 >B1にその月の月末を表示させる方法はありますか? >うるう年の日付も出せるような式が欲しいです。 A1セルの日付が実在するものであればEOMONTH関数で簡単に算出できます。 =EOMONTH(SUBSTITUTE(A1,"/00","/01"),0) B1の表示形式は「日付」にしてください。 閏年も自動的に計算されます。
お礼
ありがとうございます。
補足
すみません。月末の日付のみ表示させたいです。
- imogasi
- ベストアンサー率27% (4737/17069)
下記例ではA列は、2019/01/00のような入力をすると、文字列データになると思うので、DATEVALUE関数を使ってやってみた。 A列 B列 下記関数の結果 2019/1/00 2019/1/31 2019/2/00 2019/2/28 2019/3/00 2019/3/31 2019/4/00 2019/4/30 2019/5/00 2019/5/31 2019/6/00 2019/6/30 2019/7/00 2019/7/31 2019/8/00 2019/8/31 2019/9/00 2019/9/30 2019/10/00 2019/10/31 2019/11/00 2019/11/30 2019/12/00 2019/12/31 B1の式は、=EOMONTH(DATEVALUE(LEFT($A1,SEARCH("/",$A1,6))&1),0) 下方向に式を複写。 >A1に2019/01/00(標準)と入っています。 はどのように入力されているのか(=「セルの値」は)がよくわからないので、うまく行かない場合はすみません。普通は手入力ではこういう入力はしないと思うが。「2019年1月」と入れると2019/1/1にエクセルが変換して入力されたが。 他のコンピュター作成データ(CSVなど)を読みこんだのかな。
お礼
ありがとうございます。
補足
すみません。月末の日付のみ表示させたいです。
- kkkkkm
- ベストアンサー率66% (1719/2589)
=EOMONTH(DATEVALUE(LEFT(A1,FIND("/",A1,FIND("/",A1,1)+1))&"1"),0) としてください。
お礼
ありがとうございます。
補足
43496とでました。 月末の日付のみを表示させたいです この場合31と出したいです
- NuboChan
- ベストアンサー率47% (785/1650)
又は、 =date(year(A1) ,month(A1)+1 ,1 )-1 =date(year(A1) ,month(A1)+1 ,0 )
お礼
ありがとうございます。
補足
同様にエラーがでます。 日付のみ表示させたいです
- NuboChan
- ベストアンサー率47% (785/1650)
A1に指定日 (2019/01/01) B1に当月末の日付を表示する =EOMONTH(A1,0)
お礼
ありがとうございます。
補足
A1は 2019/01/00 です
お礼
できました!!!! ありがとうございます。