さて、ここまでで一応のことはできるはずである。
今回の例題を見て欲しい。
【例題】セルを利用して下のような図を描きたい。
一つのセルに入力した数式を他のセルにコピペすることで
図を描くにはどのセルにどのような数式を入力すればよいか?
*
*
*
*
*
*
*
*
(●`ε´●):今度は十字架か?簡単だな。行番号6のセルと列番号6のセルに
アスタリスクを表示させればいいというわけだな?
【´・ω・`】:そう。
(●`ε´●):A1に・・・
=If(Row(A1)=6 OR Col(A1)=6,"*","")
・・・だ。
【´・ω・`】:うん、それで正解だ。だいぶ慣れてきたみたいだね。
(●`ε´●):ああ、だけどひとつ質問があるんだ。
【´・ω・`】:なんだい?
(●`ε´●):既出の問題の回答をみるとORだのANDだのといったものは
使われてはいないようだが・・・
【´・ω・`】:なるほど。よく見ているね。それでは説明しようか。
まず、ひとつ知っていて欲しいことがある。
IF文などでは条件式の真・偽に応じて結果を分岐させるわけだが
数字の0は偽を表し、それ以外の数値は真と見なされる・・・。
このことを頭の隅に置いておいて欲しい。
下の図を見てくれ。これはA1に=Row(A1)-6 と入力し
それをK11までコピペしたものだ。
*
*
*
*
*
*
【´・ω・`】:6行目が0になっているね。
(●`ε´●):・・・・・・・・
【´・ω・`】:そこで先ほどの=Row(A1)-6 に、さらに=Col(A1)-6 を掛けたもの、
すなわち、 =(Row(A1)-6)*(Col(A1)-6) をA1に入力し、K11まで
コピペすると・・・。
*
*
*
*
*
*くま
【´・ω・`】:こんどは6列目も0になったというわけだ。
(●`ε´●):なるほど。では先ほどの式は・・・
=If((Row(A1)-6)*(Col(A1)-6)=0,"*","")
・・・でもいいわけだ。
そう言えば数学のセンセが・・・
X-6 = 0 または Y-6 = 0
・・・と
(X-6)(Y-6)=0
・・・は同値だと言っていたっけな。
【´・ω・`】:うん。・・・で、ここでさっきの数字の0は偽を表し、それ以外の数値は
真と見なされるという話を思い出してもらえば・・・
=If((Row(A1)-6)*(Col(A1)-6)=0,"*","")
・・・は赤字の部分(=0)を省略して
=If((Row(A1)-6)*(Col(A1)-6),"","*")
と書けるのがわかると思う。
あ、そうそう明日の晩には例題じゃなくてちゃんとした
問題を出すから、みなさん、よろぴくd(^-^)ネ!
コメント