教えて!gooにおける不適切な投稿への対応について

エクセルで、年齢早見表を作成したいんです。


A3に"1980"~A30に"2007"まで西暦を入力し、

B3に"昭和55年"~B30に"平成19年"まで年号を入力します。
年号は、「=date(A3)」でユーザー定義で表示します。

次に、C3に"申"~C30に"亥"まで十二支を入力します。
この部分が分かりません!!
関数は、どうやらYEAR,CHOOSE,MODなどを使うようです。
「=CHOOSE(___,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")」
となるんだろうとは思うのですが、インデックスの部分が、何を入力していいのか全く分かりません。
もしかしたら、YEAR関数は使わないかもしれません・・・。

できれば明日までに知りたいので、こんな説明で分かった方は回答お願いします!

gooドクター

A 回答 (4件)

#1ですが...CHOOSEであれば


A3の西暦参照で

=CHOOSE(MOD(A3+8,12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")
    • good
    • 0
この回答へのお礼

何度もありがとうございます!

A3に+8しているというところから、↓のように十二支の順番を申からにしてやってみたところ、表示することができました!!
=CHOOSE(MOD(A3,12)+1,"申","酉","戌","亥","子","丑","寅","卯","辰","巳","午","未")

ありがとうございました~^^

お礼日時:2007/04/27 22:38

C3セルの計算式


=CHOOSE(MOD(A3-1972, 12)+1,"子","丑","寅","卯","辰","巳","午","未","申","酉","戌","亥")
C30セルまでコピーします。
※1972年は”子”年です。
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

西暦から西暦を引く考え方もあるんですね。
自分の応用力・・というか、考え力の無さが恥ずかしいです…。。

参考にさせていただきます!!

お礼日時:2007/04/27 22:42

CHOOSE関数のヘルプを参照しましょう。



・・・では、回答にもなりませんので解説。
インデックスは、後に続く値の何番目をチョイスするかを決める数値です。
干支ですから、1~12の数値を指定することになります。
昭和55年は申ですので、9 が入力されれば、申が選択されて表示されます。
数値を求めるのは普通に引き算してもいいと思いますよ。

この場合、DATEVALUE関数で "昭和55年" をシリアル値に変更すると良いでしょう。
 =DATEVALUE(B3&"1月1日")
など
あとは 1~12の数値を繰り返すだけですので、MOD関数で除算の余りを求めると良いと思います。
 =MOD(DATEVALUE(B3&"1月1日"),12)
このままでは 0~11 の数値になってしまいますので、
 =MOD(DATEVALUE(B3&"1月1日"),12)+1
で、1~12 の数値に変えれば良いです。

幸い上の式でちょうど "9" が得られますので、そのまま使ってください。


・・・ってか、たかだか30行程度であれば関数を使うまでもなく、
干支を縦に12個入力して、フィルでパターンを繰り返すのコピーをしたほうが早いと思います。
    • good
    • 0
この回答へのお礼

DATEVALUE関数・・初めて聞きましたっっ><;
勉強しなくてはですね。。

>干支を縦に12個入力して、フィルでパターンを繰り返すのコピーをしたほうが早いと思います。

私もそう思ったのですが、関数を使って表示しなくてはいけないので…(汗


回答ありがとうございました!!

お礼日時:2007/04/27 22:32
    • good
    • 0
この回答へのお礼

回答ありがとうございます!

HP見てみましたが、どうしてもCHOOSE関数を使って出さなければならないので・・。
でも参考になるHPを教えていただいてありがとうございました♪

お礼日時:2007/04/27 20:21

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


人気Q&Aランキング