マクロ集目次に戻るエクセルVBAで自作関数の作成スポンサード リンク if関数の限界if関数は2通りの場合分けしかできないエクセルのif関数は非常に便利ですが、大きな欠点も持っています。それは、if関数では2通りにしか場合分けかできない、という点です。 ただ、エクセルを使っている場合では3通り、4通り等の場合分けをする必要がある場合も多いのですが、このようなことをif関数を用いて行うのは結構大変です。 5通りの場合分けの例例えば、以下のような例を考えてみましょう。
このときに、B2セルにどのような関数を入力しますか? if関数を使用する場合さて、if関数を使用する場合には、if関数の入れ子を利用して実現することになります。具体的には、B2セルには次のように入力します。
式の入力例
=if(A2<=0,"在庫切れ",if(A2<=5,"在庫僅少",if(A2<=20,"そこそこ在庫あり",if(A2<=100,"結構在庫あり",if(A2<=500,"かなり在庫あり","在庫豊富")))))
スポンサード リンク これで、確かに正しく動くのですが、括弧の数が多くて見づらいですよね? if関数では2通りの条件分岐しかできないため、今回のように6通りの条件分岐をさせたい場合には、if関数を(6−1)=5回使用する必要があります。 これを、ひとつのセルで処理をしようとすると、if関数の入れ子が5重に発生することになります。その結果、式の最後を見てみると、括弧が5つ続いていますよね? ということで、今回は、if関数の入れ子を排除するために自作関数を作ってみました。ぜひ、お試し下さい。 if関数の拡張版−mif関数の説明書式
=mif(条件1,表示内容1,条件2,表示内容2,・・・,条件n,表示内容n,表示内容n+1)
mif関数の使用例さて、それでは、上の例を、実際にmif関数を使って書いてみましょう。 書式
=mif(A2<=0 ,"在庫なし" ,A2<=5 ,"在庫僅少" ,A2<=20 ,"そこそこ在庫あり",A2<=100 ,"結構在庫あり" ,A2<=500 ,"かなり在庫あり" ,"在庫豊富")
上の式は最初から2つずつ区切って読んでいくと、わかりやすいと思うので、式に色を付けてみます。
=mif(A2<=0 ,"在庫なし" ,A2<=5 ,"在庫僅少" ,A2<=20 ,"そこそこ在庫あり",A2<=100 ,"結構在庫あり" ,A2<=500 ,"かなり在庫あり" ,"在庫豊富")
色をつけると、A2が0以下ならば「在庫なし」と表示し、A2が5以下ならば「在庫僅少」と表示し、・・・、どの条件にもあてはまらなければ「在庫豊富」と表示する、という意味が一目瞭然になりますね。 if関数を使って表現するときと比べるとすっきりしています。 if関数の拡張版−mif関数のエクセルマクロmif関数のダウンロードスポンサード リンク mif関数の入力されたエクセルシートのダウンロードはこちらからどうぞ mif関数の使い方
免責事項
このプログラムを実行したことによる一切の損害について責任は負いかねます。ご自身の責任でご利用ください。
マクロ集目次に戻る
「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!
このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。 ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます! ↓ 登録はこちら ↓ |
|