表計算のifの条件(うるう年の計算)
LibreOfficeの表計算のifの条件で
わからない点があります。
問題は
【A1からA10まで1600から100とばしに2600まで入ってます。
そして、それぞれうるう年であるか平年であるかを調べます。
条件は、
西暦の年数が4で割り切れ数字は原則『うるう年』
例外として、西暦が100で割り切れる年は『平年』とする
さらに例外として西暦が400で割り切れる年は『うるう年』とする】
という内容です。
ちなみに1600、2000、2400でうるう年と表示されれば正解です。
導き方がわからなかったので解答をみたら
(1)が解答でした。
そこで、(2)から(6)まで導けそうな日本語文を考えて、それを
条件としてあてはめてみました。
しかし、(1)と(2)以外は導けませんでした。
なぜ、(3)~(6)は導くことができなかったのでしょう?
orとandの順番を入れ替えただけで何故導けなくなったのでしょう?
これはifで導こうと思ったら、(1)または(2)でしか
導けない内容なのでしょうか?
あまり知識がないので、噛み砕いて教えてくださるとより
ありがたいです。
是非、よろしくお願いします。
(1)、400で割り切れるか、あるいは(or)、
4で割り切れて、そして(and)、100で割り切れない場合
『うるう年』、そうでない年を『平年』とする。
=if(or(mod(a1,400)=0,and(mod(a1,4)=0,mod(a1,100)<>0)),"うるう年","平年")
→ちゃんとなる。
(2)、400で割り切れない、あるいは(or)
100で割り切れ、そして(and)4で割り切れない場合
『平年』、そうでない年を『うるう年』とする。
=if(or(mod(a1,400)<>0,and(mod(a1,100)=0,mod(a1,4)<>0)),"平年","うるう年")
→ちゃんとなる。((1)を元に平年とうるう年の条件を入れ替えてみた)
(3)、4で割り切れて、そして(and)、100で割り切れない
あるいは(or)400で割り切れる場合
『うるう年』、そうでない年を『平年』とする。
=if(and(mod(a1,4)=0,mod(a1,100)<>0,or(mod(a1,400)=0)),"うるう年","平年")
→全部平年になる((1)のandとorを入れ替えただけ)
(4)、100で割り切れ、そして(and)4で割り切れない
あるいは(or)400で割り切れない場合
『平年』、そうでない年を『うるう年』とする。
=if(and(mod(a1,100)=0,mod(a1,4)<>0,or(mod(a1,400)<>0)),"平年","うるう年")
→全部うるう年になる((2)のandとorを入れ替えただけ)
(5)、400で割り切れ、そして(and)4で割り切れ、
かつ(and)100で割り切れない場合
『うるう年』、そうでない年を『平年』とする。
=if(and(mod(a1,400)=0,mod(a1,4)=0,mod(a1,100)<>0),"うるう年","平年")
→全部平年になる。
ifとandで作ってみた。
(6)、400で割り切れ、そして(and)4で割り切れ、
かつ(and)100で割り切れない場合
『うるう年』、そうでない年を『平年』とする。
=if(mod(a1,400)=0,if(mod(a1,4)=0,if(mod(a1,100)<>0,"うるう年","平年")))
→1600,2000,2400年は平年になり、それ以外はFALSEと表示される。
ifの中にifを入れる文を作ってみた。
お礼
ありがとうございました! 確かにここはレポートの回答を求める場所じゃあないですね・・・。 これからは気をつけます。。。 本当にありがとうございました!