• ベストアンサー

和暦から年齢を表示

こんにちは  エクセルの事 あまりよくわかって無いので 変な質問かも知れませんが困っています。 よろしくお願いいたします。 (1) エクセルで西暦を入れ 和暦を表示したいのです。    例えば1983(1983年)と入力すると58(昭和58年)と言うように数字のみ表示。 (2) この数字のみ表示和暦 58から4月1日現在の満年齢    20(20歳)を表示。 こんな事は出来るのでしょうか?   

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

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

難しいです。 まず、http://arena.nikkeibp.co.jp/qa/other/gaz/oth_68/ にあるようにExcelは日付を1900年1月1日を「1」としたシリアル値で管理していますので、年だけを入力した場合はたとえば1983の場合は1905/6/5と判断されてしまいます。 さらに、(2)の「この数字のみを表示」というのも無理です。入力するセルを隠すことはできませんし、かといって「1983」と入力したセルに「58」と表示させるのは・・・VBAならできるかもしれませんが。 A列に年を B列には「4」C列には「1」を最初から入力しておきます。 D列に=DATE(A1,B1,C1)と入力します。 E列には=DATEDIF(D1,TODAY(),"y") これでE列に今年4月1日現在の満年齢が表示されるかと思われます。 D列のセルの書式設定を変更します。 Ctrl+1などでセルの書式設定を開き、ユーザー定義から[$-411]ge;@と入力します。 これでD列の表示は「S58」になります。 B,C列は「表示しない」設定にすることで対処できますが、どうしてもA列とD列は表示しないわけに行きませんでした。 識者の解決法を待ちましょうか。

ki_ki
質問者

お礼

回答有難うございます。 VBA・・・聞いた事はあるけれど・・・ こんな知識しか無いのに とんでも無く難しい事を質問してしまったようで、反省しています。 教えていただいたようにやって見ましたが 満年齢の方が上手くいきません。私に知識が無いので  どこか入力ミスがあるのかも知れません。 もう一度チャレンジしてみます。 有難うございました。

その他の回答 (3)

  • poku98
  • ベストアンサー率42% (47/111)
回答No.4

No3です。 ごめんさい。=DATEDIF(A1,"2003/4/1","Y")でした。 2003/4/1の前後に「"」←を忘れていました。

ki_ki
質問者

お礼

お手数お掛けして申し訳ございませんでした。 出来ました。(^。^) 有難うございました。

  • poku98
  • ベストアンサー率42% (47/111)
回答No.3

(1)については、誕生日を入力しては、いけないのでしょうか?例えば、1983/5/1とかでは、ダメですか? 日付まで入力しないことには、#1.#2の方のような対処をするしかないです。 そこで、例えば、A1のセルに1983/5/1と入力したセルに、【セルの書式設定】から、[表示形式]で、ユーザー定義に[ggge年]と入力すれば、セルには[昭和58年]と表示されます。 (2)については、セルB1に=DATEDIF(A1,2003/4/1,"Y")と入力します。その後、又セルの書式設定の表示形式のユーザー設定で、##"歳"と入力すれば、B1には、20歳と表示されます。

ki_ki
質問者

お礼

回答有難うございました。 職場で上司から依頼された仕事なんです。途中まで上司が入力しているので、勝手に変えられないのが辛い。 ワードに差込印刷する為に作成しているようです(履歴書)。 誕生年月日を入力させて頂くよう交渉してみます。 アドバイス頂いた年齢表示が上手くいかないのですが 考えられる原因は何でしょうか? B1に=DATEDIF(A1,2003/4/1,"Y")を入力するとB1セル表示は#NUM!になります。この上で右クリックして セルの書式設定の表示形式のユーザー設定で、##"歳"と入力したけれど#NUM!のままなんです。 何回チャレンジしても 同じ結果なんです。すいません。  お手数お掛けしますが 再度アドバイス頂けたら幸いです

  • tiga-
  • ベストアンサー率19% (5/26)
回答No.1

私の試した方法です。(間違っていたらごめんなさい) (1)[A1]セルに「1983/1/1」と入れます。(どうしても日にちを入れないと日付連番(シリアル値)と認識してくれないので。 もし、絶対日付を入れたくないときは(2)[B1]セルに「1983」と入力して、[A1]セルに「=DATE(B1,1,1)」と入力するしか思いつきません) そして、[A1]セルの「セルの書式設定」で「ユーザー定義」で「e」と入力して、「OK」をクリックします。 これで(1)の方法では入力した[A1]セルに、(2)の方法では[B1]セルに入力すると[A1]セルに「58」が表示されます。 年齢は[C1]セルに「=DATEDIF(A1,DATE(YEAR(TODAY()),4,1),"Y")」と入力すると表示されます。

ki_ki
質問者

お礼

ごめんなさい 補足の所に お礼を書いてしまいました。 失礼をお詫びいたします

ki_ki
質問者

補足

回答ありがとうございます 難しいのですね。エクセルの基本すら よく解って無いのが致命的のようで反省しています。 やって見ましたがなかなか上手くいきません。もう一度、入力ミスの無いように やってみます。 ありがとうございました。

関連するQ&A