実務はマニュアル本のように一筋縄ではいかない。どんなに優れたマニュアル本でも、すべての事例を解決する万能薬にはなれないのだ。重要なことは、柔軟な発想を心がけるということだ。

 図1をご覧いただきたい。セル内に複数の名前が入力されている。連絡網のようなものを連想してほしい。2行目の「コース1」は3人のメンバーに連絡事項が伝えられる。「コース2」なら4人だ。この人数をワークシート関数で知るにはどうしたらいいだろうか。図では人数が少ないので数えれば早いが、この人数が膨大だとしたら…。

 先にお断りしておくが、ズパリ一発で人数がわかる関数など存在しない。ここでは柔軟な発想が必要なのだ。まずセル内のデータに注目すると、人数と矢印(→)の数に関連性があることに気がつく。B2セルなら、人数が「3」で矢印が「2」となっている。つまり、矢印の数がわかれば、プラス1した数が人数ということになる。だが、矢印の数をどうやって調べればいいのだろうか。

 B2セルの文字数は8文字だ。もし矢印だけを消してしまうと、文字数は6文字となる。したがって、矢印の数は「データの文字数−矢印を除くデータの文字数」となる。セル内の文字数はLEN関数で取得できる(図2)。そして、セル内のデータから矢印を消すにはSUBSTITUTE関数を使う。SUBSTITUTE関数は、指定した文字を他の文字に置き換える関数だ。ここでは"→"という文字を""に置き換えてやる(図3)。置き換えた結果は、元のデータから矢印が削除されている。この新しいデータの文字数を調べれば「矢印を除くデータの文字数」がわかる(図4)。最後に文字数の差を計算してプラス1すれば、見事に人数が求められることになる(図5)。もちろん、=LEN(B2)-LEN(SUBSTITUTE(B2,"→",""))+1というひとつの式で計算してもかまわない。

図1 セル内に入力されている名前の個数をカウントしたい


図2 LEN関数は、指定した文字の数を返す関数


図3 SUBSTITUTE関数は指定した文字を他の文字に置き換える関数。ここでは"→"を、""に置き換えた


図4 矢印を削除したデータの文字数をLEN関数で調べる


図5 文字数の差を計算してプラス1すれば人数が求められる