- ベストアンサー
年月日を和暦と西暦に変換したい
Excelで例えば「38.2.3」の数字をスラッシュを入れて、和暦と西暦に変換したいのですが? どうすればいいか教えていただけますか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「38.2.3」の「38」が何を指しているのかわかりません。 「西暦1938年」 「西暦2038年」 「明治38年」 「昭和38年」 「平成38年」 どれですか? 仮にA1に「38.2.3」という文字列が入っているとして 「.」を「/」に置き換えてシリアル値に変換します。 B1に以下の式を入れます。 =VALUE(SUBSTITUTE(A1,".","/")) これでB1は「西暦1938年2月3日」のシリアル値になります。 「西暦1938年」以外の場合は、この「西暦1938年2月3日」のシリアル値に 必要な年数を足したり引いたりすればいいです。 「西暦2038年」の場合は+100 =DATE(YEAR(B1)+100,MONTH(B1),DAY(B1)) 「明治38年」の場合は-33 =DATE(YEAR(B1)-33,MONTH(B1),DAY(B1)) 「昭和38年」の場合は+25 =DATE(YEAR(B1)+25,MONTH(B1),DAY(B1)) 「平成38年」の場合は+88 =DATE(YEAR(B1)+88,MONTH(B1),DAY(B1)) で、それぞれの日付のシリアル値になります。 西暦/和暦表示は、セルの表示形式を変えればいいです。
その他の回答 (3)
- don9don9
- ベストアンサー率47% (299/624)
No.3です。 私が提示した方法には一つ問題があることに気づきました。 閏年の2月29日、例えば「55.2.29」のようなデータだと、#VALUE!エラーになります。 昭和55年2月29日は存在しますが、1955年2月29日は存在しないからです。 和暦の昭和に変換、ということであれば、以下のような式で可能かと思います。 =DATE(VALUE(LEFT(A1,FIND(".",A1)-1))+1925,VALUE(SUBSTITUTE(MID(A1,FIND(".",A1)+1,2),".","")),VALUE(SUBSTITUTE(RIGHT(A1,2),".",""))) 元の文字列を、以下の方法で年、月、日に分割します。 年は、文字列から最初の「.」を探して、その一つ前までの文字を取る 月は、文字列から最初の「.」を探して、その次の文字から2文字を取って その中に「.」が含まれる(1月?9月)場合は「.」を取り除く 日は、文字列の最後の2文字を取って、その中に「.」が含まれる (1日?9日)場合は「.」を取り除く これらをVALUE関数で数値に変換して、DATE関数に年+1925、月、日を渡して 日付シリアル値を返す、という式になります。
お礼
こんな感じで締め切った後でも回答をいただけるとは知りませんでした。 うるう年まで考えていませんでした。 エクセルも奥深いことがわかり、今後の仕事に役に立ちそうです。 わざわざご丁寧にありがとうございました。
- mu2011
- ベストアンサー率38% (1910/4994)
「38.2.3」の年数部分について補足して下さい。 例えば、和暦年の明治38年なのか、西暦年の1938年なのか、又、2000年台はどのように入力しているのか補足して下さい。
お礼
和暦の昭和で説明不足でした。don9don9さんので解決できました。お忙しいところありがとうございました。
- yosifuji20
- ベストアンサー率43% (2675/6115)
一寸力づくですがこんな方法でできます。 B3 元の数値 38.2.3 C3 =SEARCH(".",B3,1) 最初のコンマの位置 3 D3 =SEARCH(".",B3,C3+1) 次のコンマの位置 5 E3 =LEFT(B3,C3-1) 左の2桁か1桁の値 38 F3 =MID(B3,C3+1,D3-C3-1) 真ん中の2桁か1桁の値 2 G3 =MID(B3,D3+1,LEN(B3)-D3) 右の2桁か1桁の値 3 H3 =DATE(E3,F3,G3) 答え 1968/2/3 最初の数値が西暦を入れるのか和暦を入れるのかがわかりませんのでここまでです。 西暦と和暦の換算は、セルH3の表示の変更でかえることができます。 なお入力が和暦の場合それが平成ならば、年数に1987を加算すれ西暦に換算可能です。
お礼
don9don9ので解決できました。お忙しいところありがとうございました。
お礼
できました!確かにいつの年号なのか?和暦なのか西暦なのか説明不足でした。 ありがとうございました。