仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

  • ブックマーク
  • Feedly
  • -
    コピー
仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

IF関数、うまく活用していますか?

「そりゃあ、IF関数くらいは、私だって普通に使えるわよ!!」という声が聞こえてきそうですが、お聞きしたいのは「うまく使いこんでいますか?」ということ。

IF関数の構文自体はとてもシンプルです。

しかし、複数のIFを入れ子(ネスト)することは、ビジネスのさまざまな場面で応用できる汎用的なテクニックです。これを活用すれば、チェックの結果がOKなものだけを集計したり、OKでないものを検索や並べ替えで洗い出すことも簡単にできます。 IF関数の考え方は、VBAやPower Automate Desktopの条件分岐にも多用される基本的な判定機能ですので、ご自身のデータチェックや分析に応用して、実際にこの便利さを体感してみてください。

IF関数は、YES or NOを判定するとてもシンプルな関数

IF関数の基本的な構文は、

=IF(論理式, TRUEの表示内容, FALSEの表示内容)

で、論理式としては、下記の等号・不等号の組み合わせなどが使えます。

論理式に使用可能な演算子
=   (等しい)
<> (等しくない)
<   (左辺が右辺より小さい)
>   (左辺が右辺より大きい)
<= (左辺が右辺以下)
>= (左辺が右辺以上)

シンプルな使い方としては、

仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

上図のように「論理式がTRUE(指定セルがプラス値)なら”黒字”、FALSE(マイナス値)なら”赤字”マークを出すような例があげられます。

しかし、実務上は、もう少し複雑な判定をする場合が多いでしょうから、Web公開情報などにもとづいて、複数条件でレコード抽出するサンプルをみてみましょう。

複数のIF関数真偽判定を使って、マーケティング仮説を検証

たとえば、日本国内でエリアマーケティングをする場合、いまでも都道府県比較をすることがあります。今回は、一例として「月刊コンビニ」誌などで一般公開されているコンビニエンス数統計を活用して、現在はやりの”コンビニ・サイズのミニ・スーパーマーケット(ミニスーパー/生鮮食品も扱うミニ店舗)”の出店強化エリアについて仮説をたてましょう。

ミニスーパーの商圏 = コンビニの商圏と推測すると、コンビニの強い都道府県では、ミニスーパーにも商機がありそうです。コンビニが三大都市圏(首都圏・関西圏・中部圏)に多く出店されていることは容易に推測できますが、三大都市圏以外では、どの地域を重視したらいいでしょうか?

まず、総務省統計局公開データ、および都道府県別コンビニ店舗数データをもとに、「人口密度ランキング(*実数ではなく密度です)」と「コンビニ数ランキング」を比較集計してみます。なぜなら、この2指標にはゆるやかな正の相関がありそうだからです。

仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

そこで、この2指標のランキングを、Excelで一覧表にしました。

仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

この数値から得た結論としては、「宮城県、茨城県、広島県は注視した方が良い」というものでした。この結論を出すために作成したIF関数は、以下の通りです。

仕事がススむ関数(11)IFの入れ子(ネスト)でちょっぴり複雑なデータチェックはいかが?

視覚的に分かりやすくするために、TRUEセルに「条件付き書式」で色付けしています。

”三大都市圏”以外の注目エリアをみつけるために「人口密度ランク」「コンビニ数ランク」が、それぞれ11位から20位に位置する都道府県をさがしだしました。

その結果、北から順に、宮城、茨城、広島の3県が抽出されたのです。

上図の「北海道」にあたる行に入れた数式はそれぞれ以下の通り。

E列  =IF(C2>10,"TRUE","FALSE")                ※10位未満のレコードならTRUE
F列  =IF(C2<=20,"TRUE","FALSE")     ※20位以上のレコードならTRUE
G列  =IF(D2>10,"TRUE","FALSE")               ※10位未満のレコードならTRUE
H列  =IF(D2<=20,"TRUE","FALSE")    ※20位以上のレコードならTRUE
I列(E列からH列までで真偽判定した内容を、入れ子(ネスト)して、ひとつの計算式で判定)
=IF(D2<=20,IF(D2>10,IF(C2<=20,IF(C2>10,"TRUE","FALSE"),"FALSE"),"FALSE"),"FALSE")

ここまでくれば、もっと欲をかいた分析をしたくなりますよね?

「各都道府県の平均所得ランクは?」

「自社製品の過去売行きランクは?」etc.

どんどん入れ子(ネスト)にして、ふやせばいいんです。

ただし、いきなり長文の入れ子式を記述しても、どこか一ヶ所記述ミスをしたらアウトです。そのような事態を避けるため、IF関数を使って仮説をたてる時には、最初はできるかぎり要素分解して、単純な式で真偽判定することをおすすめします。

単純な数式を組み合わせて複雑化することは容易でも、最初から複雑な要素を盛り込みすぎた数式エラーを解析することは、面倒くさいことなので。

IF関数は、データチェックやマーケティングの強い味方
ただし、最初はできるかぎりシンプルな構文で真偽判定しましょう

前章の仮説が正しいか誤っているかを判定するのは、マーケッターの領域なので、ここでは触れずにおきます。

しかし「こういう仮説が立てられるんじゃないかな?」というイメージはつかめたでしょうか? ここで使用したのは、IF関数のみです。

Microsoft Excelの設計上、IF関数の入れ子は最大64まで可能です。とはいえ、64要素を入れ子にしたIF関数式を、おすすめしません。だって、その長文のIF関数を、第三者が理解しようとしても、あまりにも複雑すぎますから。

計算式はできるかぎり分解してシンプルに。そして、細部の真偽が確かめられてから、必要があれば、計算式をまとめるために、入れ子(ネスト)にするのがよいのではないでしょうか?

関数の使い方をこえて、プログラム全般の作り方を考えるときに意識しておきたい大切なポイントですね!

小さなお悩みでも、
お気軽にご相談ください!

お急ぎの方はお電話にてお問い合わせください

050-6867-2130
せるワザロゴ

セルワザでは、役に立つEXCELワザをご紹介しております!

  • ブックマーク
  • Feedly
  • -
    コピー