前回、申しましたように同じ図形を描くのであればより簡潔な数式で表現する
のが「表計算一筆書き」の基本です。今回も、そのテーマに沿って話を進めます。
*
【例題】セルを利用して下のような図を描きたい。
一つのセルに入力した数式を他のセルにコピペすることで
図を描くにはどのセルにどのような数式を入力すればよいか?
*
*
*
*
*
*
*
(●`ε´●):こんどはシマシマか。1・3・5・7・9・11行目にアスタリスク(*のことです)が
表示されているから、A1に・・・
=If(Row(A1)=1 OR Row(A1)=3 OR Row(A1)=5 OR Row(A1)=7 OR Row(A1)=9
OR Row(A1)=11,"*","")
・・・だ。
【´・ω・`】:もちろん、それでもいいんだけど・・・アスタリスクが表示されているのが
奇数行目だと言うことに目をつければ、Mod演算子を使って・・・
=If(Row(A1) MOD 2=1,"*","")
・・・なんてふうにも書ける・・・。
(●`ε´●):Modってなんだ?
【´・ω・`】:Mod は 割り算の余りを求める演算子だ。
Row(A1) MOD 2=1 は 行番号を2で割ったとき余りが1になることを
示している。
(●`ε´●):なるほど奇数ならば2で割って余りが1になるはずだからな。
偶数ならば・・・
Row(A1) MOD 2=0
・・・というわけか?
【´・ω・`】:うん。その他に奇数を判定するIsOdd関数を使えば・・・
=If(IsOdd(Row(K11)),"*","")
・・・としてもよい。
*
【補足】
1.奇数か否かを判定するIsOdd関数に対して偶数を判定するのはIsEven関数である。
2.エクセルでは2007から、IsOdd関数・IsEven関数が標準になった。
3.エクセルにはMod演算子は存在しないので、Mod関数を使う。
ちなみに・・・
Row(A1) MOD 2=1
・・・は
Mod(Row(A1) , 2) = 1
・・・となる。
コメント