こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで月末の日付表示

A1に2019/01/00(標準)
と入っています。
B1にその月の月末を表示させる方法はありますか?

うるう年の日付も出せるような式が欲しいです。

よろしくおねがいします。

投稿日時 - 2019-10-17 10:37:52

QNo.9668032

すぐに回答ほしいです

質問者が選んだベストアンサー

> 月末の日付のみを表示させたいです
> この場合31と出したいです

=DAY(EOMONTH(DATEVALUE(LEFT(A1,FIND("/",A1,FIND("/",A1,1)+1))&"1"),0))

投稿日時 - 2019-10-17 12:03:05

お礼

できました!!!!

ありがとうございます。

投稿日時 - 2019-10-17 12:42:59

ANo.5

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(8)

ANo.8

私に提示した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 ))

ただし、この場合は、セルの書式を日付にする必要は無い。

投稿日時 - 2019-10-17 12:39:31

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:43:28

ANo.7

セル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です。ご参考に。

投稿日時 - 2019-10-17 12:14:51

お礼

わかりやすい説明ですね
ありがとうございます。

投稿日時 - 2019-10-17 12:43:47

ANo.6

>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の表示形式は「日付」にしてください。
閏年も自動的に計算されます。

投稿日時 - 2019-10-17 12:05:47

補足

すみません。月末の日付のみ表示させたいです。

投稿日時 - 2019-10-17 12:42:07

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:44:13

ANo.4

下記例ではA列は、2019/01/00のような入力をすると、文字列データになると思うので、DATEVALUE関数を使ってやってみた。
A列    B列 下記関数の結果
2019/1/002019/1/31
2019/2/002019/2/28
2019/3/002019/3/31
2019/4/002019/4/30
2019/5/002019/5/31
2019/6/002019/6/30
2019/7/002019/7/31
2019/8/002019/8/31
2019/9/002019/9/30
2019/10/002019/10/31
2019/11/002019/11/30
2019/12/002019/12/31
B1の式は、=EOMONTH(DATEVALUE(LEFT($A1,SEARCH("/",$A1,6))&1),0)
下方向に式を複写。
>A1に2019/01/00(標準)と入っています。
はどのように入力されているのか(=「セルの値」は)がよくわからないので、うまく行かない場合はすみません。普通は手入力ではこういう入力はしないと思うが。「2019年1月」と入れると2019/1/1にエクセルが変換して入力されたが。
他のコンピュター作成データ(CSVなど)を読みこんだのかな。

投稿日時 - 2019-10-17 11:54:59

補足

すみません。月末の日付のみ表示させたいです。

投稿日時 - 2019-10-17 12:41:33

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:44:49

ANo.3

=EOMONTH(DATEVALUE(LEFT(A1,FIND("/",A1,FIND("/",A1,1)+1))&"1"),0)
としてください。

投稿日時 - 2019-10-17 10:50:27

補足

43496とでました。

月末の日付のみを表示させたいです

この場合31と出したいです

投稿日時 - 2019-10-17 11:46:59

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:44:57

ANo.2

又は、

=date(year(A1) ,month(A1)+1 ,1 )-1

=date(year(A1) ,month(A1)+1 ,0 )

投稿日時 - 2019-10-17 10:49:15

補足

同様にエラーがでます。

日付のみ表示させたいです

投稿日時 - 2019-10-17 11:47:44

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:45:06

ANo.1

A1に指定日
  (2019/01/01)

B1に当月末の日付を表示する
=EOMONTH(A1,0)

投稿日時 - 2019-10-17 10:45:57

補足

A1は 2019/01/00 です

投稿日時 - 2019-10-17 11:45:35

お礼

ありがとうございます。

投稿日時 - 2019-10-17 12:45:14

あなたにオススメの質問