• ベストアンサー

元号を数字で表示したい

いつもOKWAVEを参考にさせていただいています。ありがとうございます。 イベント参加者のリストを作成しており、参加者の誕生日の元号を番号で表示したいです。 昭和 → (1) 平成 → (2) 元のデータは西暦です。1989年1月8日より前の誕生日の人に(1)、以降の誕生日の人に(2)と振りたいのですがどうしたら良いでしょうか。 アドバイスいただけますようよろしくお願いいたします。

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

  • ベストアンサー
  • nishi6
  • ベストアンサー率67% (869/1280)
回答No.1

いろいろあるでしょうが、データがA1セルにあるとして、 =IF(A1<DATEVALUE("1989/1/8"),"(1)","(2)") とか =IF(A1<"1989/1/8"*1,"(1)","(2)")

sumile123
質問者

お礼

nishi6様 アドバイスありがとうございました! 教えていただいた通り入れると、うまく表示できました。参加者が100名以上いるのですが、コピーしてあっと言う間にリストが完成しました。 本当にありがとうごさいました!!

その他の回答 (6)

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.7

[No.3]の補足 》 1989年1月8日より前の誕生日の人に… 言わずもがなのことと承知しつつ、申し添えておきます。 昭和は、1926/12/25~1989/01/07(シリアル値は 9856~32515) 平成は、1989/01/08~2019/04/30(シリアル値は32516~43585) 令和は、2019/05/01~_____(シリアル値は43586~___) つまり、私の提示式 =IF(A1>43585,3,IF(A1>32515,2,IF(A1>9855,1,""))) 中の数値はシリアル値を使用しているという次第。

  • kon555
  • ベストアンサー率51% (1842/3559)
回答No.6

VBAで対応してみました。 日付けセルを選択した状態で実行すると、日付けを判定して右隣のセルに(1)と(2)を入力します。 Sub 日付変換() Dim DH As Date Dim RA As Range DH = "1988/1/8" For Each RA In Selection  If IsDate(RA.Value) = True Then   RA.Offset(0, 1).Value = "'(1)"   If RA.Value > DH Then RA.Offset(0, 1).Value = "'(2)"  End If Next End Sub

sumile123
質問者

お礼

kon555様 ハイレベルな回答ありがとうございました! いつかVBAを使えるようになりたいです。

  • bunjii
  • ベストアンサー率43% (3589/8249)
回答No.5

>イベント参加者のリストを作成しており、参加者の誕生日の元号を番号で表示したいです。 入力されている日付を表示形式で昭和以前に"(1)"を付加し、平成以降に"(2)"を付加すれば良いのでしょうか? 昭和63年12月25日 → (1) 63年12月25日 平成28年10月31日 → (2) 28年10月31日 大正13年3月3日 → (1) 13年3月3日 令和1年8月7日 → (2) 1年8月7日 >アドバイスいただけますようよろしくお願いいたします。 上記の例でしたら条件付き書式で対応できます。 平成1年1月8日=32516 であることを利用して条件付き書式の数式で条件を指定し、書式をユーザー定義で目的の表示形式にすれば良いでしょう。 数式が分からないときは補足で要望を具体的に提示してください。

sumile123
質問者

お礼

bunjii 様 ご回答ありがとうごさいます。 質問の仕方が悪く申し訳ありませんでした。 (1)、(2)と表示したかったのですが、説明不足で失礼いたしました。 次回より質問の仕方も注意しますので、またご教示頂けますようよろしくおねがいします。

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

前提として ・エクセルを使う ・関数を使う ・明治や大正はあり得ないと仮定 ・日付(下記ではA列データ)の有効性のチェックは不要とする これぐらいのことは、質問に書いておくべき。 ーー 例データ A2:D6 日付 年号 数字コード 別式 1950/1/23 昭和 1 1 1997/1/3 平成 2 2 2019/6/20 令和 3 3 1980/1/2 昭和 1 1 2019/8/31 令和 3 3 B2の式 =TEXT(A2,"ggg") C2の式 =MATCH(B2,{"昭和","平成","令和"}) 以上は理解のために出してあるもの。合成して D2の式 =MATCH(TEXT(A2,"ggg"),{"昭和","平成","令和"}) が最終結論。

sumile123
質問者

お礼

imogasi様 ありがとうございます。質問の仕方が拙く申し訳ありませんでした。次回は気をつけますので、またご教示下さいますようお願いします!

  • msMike
  • ベストアンサー率20% (364/1804)
回答No.3

添付図参照 B1: =IF(A1>43585,3,IF(A1>32515,2,IF(A1>9855,1,"")))

sumile123
質問者

お礼

msMike様 補足をつけていただきありがとうございます! シリアル値、知りませんでした...。初心者です、とコメントすべきでした。申し訳ありません。 すごく勉強になりました。ありがとうございました!

  • SI299792
  • ベストアンサー率47% (774/1618)
回答No.2

A1に日付が入っているとして、 ="("&FIND(TEXT(A1,"G"),"SHR")&")" の様な式も考えられます。令和は(3) になります。 大正以前はエラーになります。

sumile123
質問者

お礼

SI299792様 アドバイスありがとうございます! このように形でもできるのですね。勉強になります。 ありがとうごさいました。

関連するQ&A