• ベストアンサー

MS-Excel2003 その列にある最大の日付を表示させたい

A列にある最小年月日~最大年月日を表示させたいです。 最小年月日は過去なので決まっているのですが、 最大年月日はこれから増える予定なので関数を使おうと思っています ="最小年月日~" & max(a:a)とすると、 セルには最小年月日~39622 と表示されます (39622は今年の6月22日です) おとなしくセル1に最小年月日~ セル2にmax(a:a)を書式設定すれば何とかなるんですが 表の作り方を一番長い項目にあわせてしまったので 1セル1セルがやたらと長くなっており、ちょっと後悔気味です。

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

  • ベストアンサー
  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.1

=TEXT(MIN(A:A),"yyyy/m/d~") &TEXT(MAX(A:A),"yyyy/m/d") または =TEXT(MIN(A:A),"yyyy年m月d日~") &TEXT(MAX(A:A),"yyyy年m月d日") あるいは =TEXT(MIN(A:A),"ggge年m月d日~") &TEXT(MAX(A:A),"ggge年m月d日") お好きなのでやってください。

-Jelly-
質問者

お礼

ありがとうございます。 2つめで出来ました。 質問後自力で YEAR(MAX(A:A)) & "年" & MONTH(MAX(A:A)) & "月" & DAY(MAX(A:A)) & "日" にたどりついたんですが、 こちらのほうが随分とスマートです。 勉強になりました。

その他の回答 (2)

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.3

日付がA列で、B列に記入のある日付の最大値ということなら =TEXT(MIN(A:A),"yyyy/mm/dd")&"~"TEXT(SUMPRODUCT(MAX(($B$2:$B$1000<>"")*($A$2:$A$1000))),"yyyy/mm/dd") SUMPRODUCT関数では、列全体を設定することは出来ませんので 開始が2行目で良いなら$1000の所は設定できる最大値をセットしてください。 $A$1$65535→$A:$A→NG $A$2$65535→OK

-Jelly-
質問者

お礼

TEXT(MIN(A:A),"yyyy年m月d日~") &TEXT(MAX(A:A),"yyyy年m月d日") で出来ました。 何行まで増えるのかまだわからないので、 列全体を指定出来る方法をとりましたが、 (まぁ最大値がそんな小さい数とも思えませんが…) SUMPRODUCT関数も何だかとても便利な関数のようですね。 どうもありがとうございました

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

セルの値が日付シリアル値のデータであれば >その列にある最大の日付を表示させたい はなぜ質問になるのですか。=MAX(a1:A100) などでしまい。 ーー >="最小年月日~" & max(a:a)とすると、 セルには最小年月日~39622 と表示されます (39622は今年の6月22日です) 何のために書く必要があるのかな? >おとなしくセル1に最小年月日~ セル2にmax(a:a)を書式設定すれば何とかなるんですが 「書式設定すれば」でなく「関数をいれて、書式設定すれば」ではない? === >表の作り方を一番長い項目にあわせてしまったので 1セル1セルがやたらと長くなっており、ちょっと後悔気味です。 ーー この部分と回答の難しさ(通常の知識でやりにくさ)を説明してもらえませんか。 === 多分、文字列を日付の前や後ろに加えたとき、文字列+日付の日付部分に日付書式を設定し、常識的な日付表示(2008年6月22日のような)にしたい、と書けば済むことでは。 TEXT関数が思いつかないだけの質問か。 ーー 文字列と日付を結合すると全体が文字列となる。 日付の部分だけ狙って普通の書式設定は出来ない。 だから日付部分をTEXT関数で文字列化して、かつ書式設定化すればよい。 それにはTEXT関数を使う。 ="セルの最小年月日は"&Text(max(a1:A10),"yyyy年mm月dd日"&"です"

-Jelly-
質問者

お礼

>セルの値が日付シリアル値のデータであれば >>その列にある最大の日付を表示させたい >はなぜ質問になるのですか。=MAX(a1:A100) >などでしまい。 &で関数以外の文字を繋げていると、 シリアル値が年月日の表示にならないから質問しています。 >セルには最小年月日~39622 と表示されます >(39622は今年の6月22日です) >何のために書く必要があるのかな? 日付を入れた行数が多くなるので、 一番古い日付と新しい日付がいつかを一目で分かるようにしたいので必要です。 >「書式設定すれば」でなく「関数をいれて、書式設定すれば」ではない? 指摘できるなら(理解出来るなら)わざわざ聞かないで下さい。 今回は日本語の文章について質問しているのではありません。 >この部分と回答の難しさ(通常の知識でやりにくさ)を説明してもらえませんか。 すみませんが質問の意味がわかりませんでした。 もし、自分の質問が下手糞すぎて読み取れないなら、無視して下さい。 他の方が聞きたかったことをしっかり汲み取って答えて下さいます。 >文字列と日付を結合すると全体が文字列となる。 >日付の部分だけ狙って普通の書式設定は出来ない。 >だから日付部分をTEXT関数で文字列化して、かつ書式設定化すればよい。 >それにはTEXT関数を使う。 >="セルの最小年月日は"&Text(max(a1:A10),"yyyy年mm月dd日"&"です" この最後の部分のみ参考になりました。 どうもありがとうございます