• ベストアンサー

エクセルの人数計算がうまくできません

こんにちは。エクセルでの人数計算についてお伺いさせてください。 現在、AC列に「昭和48年」という形で生年が記載されていて AB列に年齢を記載したいと考えています。 「=DATEDIF(AC1,TODAY(),"Y")」という関数を入れたのですが #VALUE!と表示されてしまいました。 「昭和48年」という表記を変えなくてはいけないかなと思ったのですが セルの書式設定で西暦に直そうとしてもうまくできなかったので 良い方法をご教示頂ければ幸いです。 どうぞよろしくお願いします。

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

  • ベストアンサー
noname#79209
noname#79209
回答No.3

#1さんのご意見に賛成です。 DATEDIF関数に限らず日付時刻に関する関数は、基本的にシリアル値に対して有効な関数です。 (一部の日付時刻型関数を除く) 文字で書かれた年月日ではエラーになります。 シリアル値は1900年1月1日からの累計日数を表す「数値」です。 2008/4/12なら、35990という数値です。 従って、ご質問の「昭和48年」が文字なら何らかの方法で変換しなければなりません。 =DATEDIF(DATEVALUE(AC1&"1月1日"),TODAY(),"Y") でいかがでしょう。

pctimes
質問者

お礼

ご教示をいただき、ありがとうございました。 2番目の方に頂いた数式をDATEDIFに組み合わせると、このような数式になるのですね。こちらで解決ができました。どうもありがとうございました。

その他の回答 (2)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.2

kuma3fさんと同じ発想ですが、数式は↓でいかがでしょうか? =(AC1&"1月1日")*1

参考URL:
http://www2.odn.ne.jp/excel/waza/function.html#SEC24
pctimes
質問者

お礼

ありがとうございました!こちらの数式でも西暦に直すことが出来ました。

  • kuma3f
  • ベストアンサー率63% (28/44)
回答No.1

違っていましたらすみませんが、「昭和48年」が文字列入力されているので「=DATEDIF(AC1,TODAY(),"Y")」が#VALUE!になると思われます。 もし、和暦の年号が昭和と平成だけであれば次の関数で「昭和48年」を変換してみてください。 ちょっと複雑な関数になってしまいましたが文字列関数で数字を取り出し、年号が昭和ならS、平成ならH、月日を1/1で結合させています。 AC列を直接変換することはできませんので空き列(例えばAD列)に次の関数を貼り付けてみてください。 =VALUE(IF(LEFT(AC1,2)="昭和","S","H")&LEFT(RIGHT(AC1,LEN(AC1)-2),LEN(RIGHT(AC1,LEN(AC1)-2))-1)&"/1/1") 「=DATEDIF(AC1,TODAY(),"Y")」はAC1を空きセル(例えばAD1)に変更して確認してみてください。(「=DATEDIF(AD1,TODAY(),"Y")」)

pctimes
質問者

お礼

さっそくご回答をいただき、ありがとうございました! 頂いた数式で、西暦に変換することができました。 自分では絶対に作れなかった数式なので…… ご教示ありがとうございます。

関連するQ&A

専門家に質問してみよう