ifs関数の使い方とExcel2013以前の古いエクセルで使う方法


Excel2016の2016年2月アップデートで、
switch関数等とともに
ifs関数が導入されました。

ifs関数とは?

これは、if関数を複数分岐に対応させた関数で、

1.書式
IFS(条件1,処理1,条件2,処理2,条件3,処理3,…)
2.動作
  • 条件1を満たしたとき→処理1
  • 条件2を満たしたとき→処理2
  • 条件3を満たしたとき→処理3
  • ...
  • (全ての条件を満たさないとき)→#N\A!

というような動作をする関数です。

ifs関数を使うとif関数の入れ子(ネスト)不要

今までは、
if関数で、複数に分岐させたい場合には、
if関数の入れ子(ネスト)にせざるを得ませんでした。

でも、ifs関数を使えば、
単なる複数分岐だけであれば、
if関数の入れ子(ネスト)にする必要はなくなります。

例えば、A1セルに入っている「点数」に応じて、
次のようにA~Fという文字を表示させたい場合には、

  • 90点以上・・・A
  • 80点以上・・・B
  • 70点以上・・・C
  • 60点以上・・・D
  • 59点未満・・・F

次のような計算式を入力します。

=ifs(A1>89,"A",A1>79,"B",A1>69,"C",A1>59,"D",TRUE,"F")

従来のif関数よりも非常に簡単です。

Excel2013、Excel2010、Excel2007等古いエクセルでは使えない

このifs関数は、
最新のExcel2016でしか使えません。

でも、
どうせなら、古いExcelでも使えたら便利だろうな、ということで、
ユーザ定義関数を作ってみました。

Function IFS(ParamArray par())
  Dim i As Integer 

  IFS = CVErr(xlErrNA)
  If UBound(par) Mod 2 = 0 Then
    Exit Function
  End If
  
  For i = LBound(par) To UBound(par) - 1 Step 2
    If par(i) Then
      IFS = par(i + 1)
      Exit Function
    End If
  Next
  
End Function

上記ソースを
エクセルVBAの標準モジュールにコピペしてもらえれば、
ほぼifs関数と同じ動きをします。

ただ、1点だけ動きが違う点があります。

引数が奇数個の場合

引数が奇数個の場合(=条件だけあって、処理がない場合)に、
Excel2016のifs関数は「引数が足りない」エラーが出るが、
上記ユーザ定義関数だと「#N/A!」が出る

ただ、この違いは、
使用する上では、ほとんど支障がないと思います。

ということで、
便利な関数だと思いますので、ぜひ、活用してください!

姉妹版(?)の
switch関数もユーザ定義関数を作りましたので、
合わせてコピペしてもらったうえで、

アドイン登録をしておけば、
Excel2016気分が味わえますよ(^^)。

エクセル基礎講座 「無料」動画マニュアル

「経理事務のためのエクセル基礎講座(初級編)」(動画マニュアル 総収録時間162分)を無料プレゼント中です!

このマニュアルで解説していることを一通り学べば、経理事務を行う上で最低限必要となる知識が得られます。

ご登録者の方には、合わせて、公認会計士が実体験を通して身に付けたエクセルを使う技をメールにてお伝えしていきます!

無料動画講座 登録フォーム

※ご登録頂いたメールアドレスに、エクセルを使いこなすための情報を配信するメールセミナー「エクセル倍速講座」も合わせて配信させていただきます。