- 締切済み
元号を年号に変更し、かつ経過年月を計算したい
こんにちは。こんなことができないか悩んでいます。 6306 ←昭和63年6月を意味します 108 ←平成元年12月を意味します(1の前にスペースあり6と8が下1桁) エクセルに上記のような、4桁(たまに3桁)の数字が羅列されています。これを「198806」「198908」に自動変換する式を探しています。昭和・平成の別を手動で判断するなら「A1+200000-1200」「A1+190000+2500」を使い分ければよいと思いますが、何か洗練されていません。知恵を貸して下さい。IF式を使えば自動計算可能でしょうか?もう一つ質問。198908と198806を差引して経過年数を実数で計算する方法はありますか。1年2ヶ月ですから、答えは1.166...7になるはず。どうぞよろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- Oh-Orange
- ベストアンサー率63% (854/1345)
★和暦→西暦の変換だね。 ・ただの数値だけでは処理できませんよ。 ・平成、昭和、大正、明治と元号(年)をセットで管理しましょう。 ・そして、それぞれについてIF文の使って(かなり複雑になるかも)判定します。 ・平成、昭和、大正、明治は数値で 0、1、2、3と管理してみるのは、どう。 ・IF式も良いですが、分かりやすく使いやすいマクロ(VBA)を作りましょう。 ★参考資料 ・平成は、1989.01.08~現在まで。 ・昭和は、1926.12.25~1989.01.07 です。 ・大正は、1912.07.30~1926.12.24 です。 ・明治は、1868.09.08~1912.07.29 です。 ★経過年月の計算式 ・(月1-月2)÷100の整数部が『経過年数の整数部』、 (月1-月2)÷100の余りを12で割ったら『経過年数の小数部』になりますよ。 ・回答者 No.2 さんの式がそれですよ。
- poohron
- ベストアンサー率59% (574/971)
昭和何年から平成何年の範囲でお使いになるのか良く分かりませんが、 例えば =A1+192500+(A1*1<3000)*6300 とすれば昭和30年~平成29年に対応できます。 何年まで対応するかは(A1*1<3000)の「3000」を適当に変えてください。 尚、(A1<3000)ではなく(A1*1<3000)としているのは (1の前にスペースあり・・・・)とのことでしたので 羅列されている数字が文字列として入力されているのではないかと思ったからです。 文字列ではなく数値として入力されているのであれば、(A1<3000)でOKです。 それから2つ目のご質問ですが、 2つの数字がB1、B2に入っているとして =INT((B1-B2)/100)+MOD(B1-B2,100)/12 となります。
2001は昭和20年1月ですか、平成20年1月ですか? 3001は昭和30年1月ですか、平成30年1月ですか? 4001は昭和40年1月ですか、平成40年1月ですか?