- ベストアンサー
エクセルの条件分岐について質問です
今、書類を作成しており、その際に西暦でなく年号で作成をする必要があるのですが、 その際にとあるセルのデータを下に明治、大正、昭和、平成と分けることは出来るでしょうか? 例としては 2012→平成 1980→昭和 1910→大正 と言った具合です。 データは各年の数値が入り混じった状態で1900~2012までの数字が入っている状態です。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! >1910→大正 は「明治」だと思うのですが・・・ 一例です。 ↓の画像のように表を作成しておきます。 A2セルに =IF(A2="","",VLOOKUP(A2,$D$2:$E$5,2,1)) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 ※ 注意点! 実際は元号が変わる年は注意が必要です。 本来であれば、別セルにシリアル値で表示させ、セルの表示形式をユーザー定義から ggg とするのが理想です。 (例)1989/1/7 → 昭和 1989/1/8 → 平成 といったように1989年でも日付によって元号が変わってきます。 こんなんで参考になりますかね?m(_ _)m
その他の回答 (5)
- imogasi
- ベストアンサー率27% (4737/17069)
日付シリアル値というもの(普通の日付のことだが)に直せば、表示形式で年号表示できるよ。分岐なんか内部でやってくれる。こういうエクセルの基礎的な仕組みを知らないのだろう。 そのためには2012でなく1月1日を加えて A1に2012とあるとして、B1に=DATE(A1,1,1)で2012/1/1になる。表示形式をユーザー定義で ggg に設定すれば 平成と見えるだろう。 2012 平成 1980 昭和 1910 明治 <-太正ではないだろう 1902 明治 ーーー 1月1日にしているので、正しくない場合はありえる。日付を指定しないで年号を求めるのが間違いなのだ。 ーー 文字列にするなら =TEXT(DATE(A1,1,1),"ggg") で出来る こういうのはエクセルではマイクロソフトのエキスパートの作った仕組み(日付シリアル値と関数と日付表示形式の体系)に任せるべきなんだ。自分でプログラムを組んだりしたら、普通のものは誤りを起す。
お礼
回答ありがとうございます。 セル設定の事を忘れてました。
- hallo-2007
- ベストアンサー率41% (888/2115)
いまのパソコンは日付を和暦にも西暦にも変換できますので No4の方が式は十分に使えると思いますが 省略すれば =TEXT(DATE(A1,1,1),"ggg") で指定した1月1日の和暦の年号が得られます。 でも??? 例えば 1912年の7月30日以前は 明治 以後は 大正なので、正確に言えば、日付が必要です。 例ですが A列 B列 C列 年 月 日 1912 7 20 ・・・ と年、月、日 の情報があるなら D列に =TEXT(DATE(A2,B2,C2),"ggg") が正確な和暦年号の表示になります。 単に、和暦の表示があれば D列に=DATE(A2,B2,C2) と入れて 表示形式 ユーザー定義で [$-411]ggge"年"m"月"d"日" を選択すればよいはずです。 全てを関数で処理したければ D列は =TEXT(DATE(A2,B2,C2),"ggge年m月d日") で試してみてください。
お礼
回答ありがとうございます。 TEXTは知らなかったので試してみます。
- esupuresso
- ベストアンサー率44% (257/579)
例えばセルA1に1925と入力 セルB1に =LEFT(TEXT(DATE(A1,0,0),"ggge"),2) の式を入れてA列の数値の入っている行数まで数式をコピーで・・・。
お礼
回答ありがとうございます。
- zatugakuhakase
- ベストアンサー率60% (6/10)
A1に西暦があるとすると、以下のように年号を表示させたいセルにいれればOK 。 =IF(A1<1988,IF(A1<1927,IF(A1<1912,"明治","大正"),"昭和"),"平成") 年号はhttp://www.linksyu.com/nengo.htmを参考にしました。 (画像も見てください)
お礼
回答ありがとうございます。 IFの組み合わせ可能が分からなかったので参考になりました。
一発ではできないので関数と書式で。 https://www.google.com/search?q=excel+%E5%B9%B4%E5%8F%B7
お礼
回答ありがとうございます。