- ベストアンサー
エクセルの人数計算がうまくできません
こんにちは。エクセルでの人数計算についてお伺いさせてください。 現在、AC列に「昭和48年」という形で生年が記載されていて AB列に年齢を記載したいと考えています。 「=DATEDIF(AC1,TODAY(),"Y")」という関数を入れたのですが #VALUE!と表示されてしまいました。 「昭和48年」という表記を変えなくてはいけないかなと思ったのですが セルの書式設定で西暦に直そうとしてもうまくできなかったので 良い方法をご教示頂ければ幸いです。 どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1さんのご意見に賛成です。 DATEDIF関数に限らず日付時刻に関する関数は、基本的にシリアル値に対して有効な関数です。 (一部の日付時刻型関数を除く) 文字で書かれた年月日ではエラーになります。 シリアル値は1900年1月1日からの累計日数を表す「数値」です。 2008/4/12なら、35990という数値です。 従って、ご質問の「昭和48年」が文字なら何らかの方法で変換しなければなりません。 =DATEDIF(DATEVALUE(AC1&"1月1日"),TODAY(),"Y") でいかがでしょう。
その他の回答 (2)
- izmlz
- ベストアンサー率55% (67/120)
kuma3fさんと同じ発想ですが、数式は↓でいかがでしょうか? =(AC1&"1月1日")*1
お礼
ありがとうございました!こちらの数式でも西暦に直すことが出来ました。
- kuma3f
- ベストアンサー率63% (28/44)
違っていましたらすみませんが、「昭和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")」)
お礼
さっそくご回答をいただき、ありがとうございました! 頂いた数式で、西暦に変換することができました。 自分では絶対に作れなかった数式なので…… ご教示ありがとうございます。
お礼
ご教示をいただき、ありがとうございました。 2番目の方に頂いた数式をDATEDIFに組み合わせると、このような数式になるのですね。こちらで解決ができました。どうもありがとうございました。