• ベストアンサー

エクセルDATEDIFで「○歳○○ヶ月」は?

エクセルで誕生日・入社経過年数表を作りたいのです。現在何歳・入社して何年などは下記の関数でよいと思うのですが, =DATEDIF(N5,TODAY(),"Y") DATEDIF(N5,TODAY(),"M") 「○歳○○ヶ月」「○年○○ヶ月」といったふうに,経過年数と月数が同時に表示することはできないのでしょうか。

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

  • ベストアンサー
  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.5

再登場  あっ本当だ~(汗)日付に変換するとだめですね!では  =DATEDIF(A1,B1,"y")&"年"&DATEDIF(A1,B1,"ym")&"ヶ月"&DATEDIF(A1,B1,"md")&"日"  として下さい。   EX  関数の名前がわかっている場合は質問検索で調べると沢山表示されます。  また  エクセルの技のページも紹介します。 参考になれば幸いです

参考URL:
http://www2.odn.ne.jp/excel/waza/
55zyabbit
質問者

お礼

k_eba様 とてもうまくいき,うれしいです。この度は本当にお世話になりました。ご回答をお寄せくださった皆様のおかげで,大変勉強になりました。本当に有難うございました。

その他の回答 (4)

  • Hageoyadi
  • ベストアンサー率40% (3145/7860)
回答No.4

=DATEDIF(N5,TODAY(),"y")&"歳と"&DATEDIF(N5,TODAY(),"ym")&"ヶ月" セルの書式はいじりません。 12ヶ月は表示されず、繰り上がって0ヶ月と表示されてますね。

55zyabbit
質問者

お礼

Hageoyadi様,的確なアドバイス有難うございます。ご指摘の通り,試してみました。できることなら皆様にポイント100点差し上げたいです。ごめんなさい。私ももっと勉強します。

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.3

No.#2のdeadlineです。0ヶ月or0日の時の処理&桁揃えを加えたので、式がかなり長くなりますが、 =IF(DATEDIF(N5,TODAY(),"Y")=0," 0年",RIGHT(" "&TEXT(DATEDIF(N5,TODAY(),"Y"),"##年"),3))&IF(DATEDIF(N5,TODAY(),"YM")=0," 0ヶ月",RIGHT(" "&TEXT(DATEDIF(N5,TODAY(),"YM"),"##ヶ月"),4))&IF(DATEDIF(N5,TODAY(),"MD")=0," 0日",RIGHT(" "&TEXT(DATEDIF(N5,TODAY(),"MD"),"##日"),3)) "0ヶ月"or"0日"を表示しないようにする時には、IF関数内の"0ヶ月"or"0日"の部分を桁が揃う数のスペースに置き換えればよいかと思います。 回答を記入しながら、もっとスマートな方法はないものかと考えていますが、こんなもんでいかがでしょうか?

55zyabbit
質問者

お礼

deadlineさま。うまくいきました。今回お手数をかけ申し訳ございません。本当に勉強になりました。私も,もっと勉強します。有難うございました。

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.2

下記のように、TEXT関数で『書式指定文字列』に変換し、文字列結合演算子"&"で結合すれば、1つのセルに表示することが可能です。 =TEXT(DATEDIF(N5,TODAY(),"Y"),"##年")&TEXT(DATEDIF(N5,TODAY(),"YM"),"##ヶ月") DATEDIF関数の月数の計算方法の指定は、"M"では期間内の経過月数になりますので、"YM"で1年未満の月数("Y"によって切り捨てられた月数)を指定します。

55zyabbit
質問者

補足

 deadline様,ご教授有難うございました。いろいろ方法があるものだな,と驚いています。いいのを作って知り合いに自慢しようと思います。    さて,「0ヶ月○○日」まで表示することも可能でしょうか? ----------------------------------------------- 試してみました。 昭和38年4月6日 平成14年4月23日   39歳ヶ月 ----------------------------------------------- =TEXT(DATEDIF(N5,TODAY(),"Y"),"##年")&TEXT(DATEDIF(N5,TODAY(),"YM"),"##ヶ月")

  • k_eba
  • ベストアンサー率39% (813/2055)
回答No.1

A1:昭和41年9月3日 B1:平成14年2月19日 C1:=DATE(DATEDIF(A1,B1,"y"),DATEDIF(A1,B1,"ym"),DATEDIF(A1,B1,"md")) C1のセルの書式設定でユーザー設定で yy”年”mm”ヶ月”dd”日” でいかがでしょうか なにかあれば補足して下さい

55zyabbit
質問者

補足

k_eba様。迅速な回答有難うございました。よい,関数を教えていただき,とても助かりました。感謝しています。 さて,下記のように年齢が○○歳12ヶ月のときだけ,年齢が繰り上がらないのですが,何かよい方法はございますか? =================================================== 昭和38年4月6日 平成14年4月23日 38歳12ヶ月17日 =================================================== C1:=DATE(DATEDIF(A1,B1,"y"),DATEDIF(A1,B1,"ym"),DATEDIF(A1,B1,"md")) C1のセルの書式設定でユーザー設定で yy”年”mm”ヶ月”dd”日”

関連するQ&A