PR

●IF関数のオンパレード

 Excelの計算式にIF関数は不可欠だ。しかしIF関数ばかり執着するのも考えものだ。本日はその悪い例を紹介したい(図1)。

IFと&で作ったスペック表
図1 「=IF(B2=
図1 「=IF(B2="-","",B2&"、")」とは「B2の値が『-』ならば文字なし、『-』でないならばB2の値に『、』を付けて表示せよ」という意味だ。B2には「USB 3.0×3」と入力されているらから「USB 3.0×3、」が返る。これがB2からB7まで実行されて、「&」によって返ってきた文字列が結合される
[画像のクリックで拡大表示]

 これはパソコンのスペック表だと考えてもらいたい。2行目から7行目までには製品の通信機能が並ぶ。8行目では製品がもつ通信機能をひとまとめにしてある。ここでは2度打ちは面倒だし、誤入力も避けたいから関数を使って自動入力している。

 B8の数式を見ると、まずIF関数で通信機能の項目(B2~B7)に情報が入力されているか否かを調べている。そしてセルに情報が入力されていない場合(「-」の場合)は文字なし、入力されている場合はセルの値に「、」を付けた文字列を返す。これを各行で実行してそれぞれの文字列を「&(アンパサンド)」で結合している。

「おい、オレの作ったシートを勝手にさらしものにしやがって。逮捕するぞ」

 何を言ってるんだ。あんまり素晴らしいシートだから世間に公表してるんじゃないか。名誉なことなんだぞ。

「おっ、そうか。実はこれ、徹底的にIF関数を使った会心の作なのだ。どうだ恐れ入ったか。これから私のことをIF関数の鬼と呼べ」

 ふん、何が鬼だ。冒頭にも述べたようにIF関数は数式を立てるのに不可欠だ。しかしこうも繰り返してIF関数を使うのは非常識もはなはだしい。

 そもそもExcelの数式は1文字でも間違えれば正確な答えが出てこない。よって今回の例のように数式が長くなるにしたがって入力間違いの可能性は高くなる。結果、うまく答えが出ないこともしばしば、などという状況に陥ってしまう。特にキミのような素人の場合はなおさらだ。

「素人ではない。鬼だ」

 はいはい。で、これを未然に回避するには数式をできるだけシンプルにするに越したことはない。そして数式のシンプル化に役立つのが中間セルだ。