Excel新関数IFS・SWITCHとVLOOKUPの比較。おすすめはVLOOKUP。

  • URLをコピーしました!

Excelの新しいめの関数、IFS(イフエス)、SWITCH(スイッチ)。
これらの紹介と実際に使えるのかどうかということについて書いてみました。

ex-it_35

 

 

Excelの IFS 関数 ・SWITCH 関数とは

IFS(イフエス) 関数は見た目のとおり、 IF 関数に似ているものです。
IF 関数は、「もし〇だったら●という処理をする」というように、条件によって処理を分けることができます。
「もし〇だったら●」を、
=IF(〇,●)

「もし〇だったら●、もし△だったら▲、そうでなかったら□」を
=IF(〇,●,IF(△,▲),□))

と書きます。

 

たとえば セル A 1が90点以上だったらA、80点以上だったら B、それ以外はCという場合は。「もし〇だったらA、もし〇だったらB、それ以外ならC」と表現し、入れるのは次のような数式です。

image

 

これぐらい条件が少なかったらまだいいのですが、条件が多くなると、入力の手間もかかりミスの可能性も高くなるでしょう。

IF関数なら、「もし〇だったら、●、もし△だったら▲」と入れるところ、IFS 関数は、「もし〇だったら、●、△だったら▲」になります。
IF関数だと、
=IF(〇,●、IF(△,▲),□)

IFS関数だと、
=IFS(〇,●、△,▲,TRUE,□)
と、かっこも減るので見やすいです。
「それ以外は」は、TRUEで表現します。

image

しかしながら 、IFS関数は、Office 365または Office 2019で Excel を使っていないと使うことはできません。
自分が使っていても、そのファイルを他人が使ったときにExcelのバージョンが古ければ使えなくなるのです。

 

より実践的な事例、次のようなものがあります。
所得税の計算をするときに、税金の計算上給料から引ける金額(給与所得控除)は次のような表で計算するしくみです 。

image
ただし最低でも65万円は引けるので、それぞれの数式で MAX 関数を使って表現しています。
たとえば300万円だったら360万円以下であるので300万円に30%をかけて18万円を足した金額を差し引きます。

 

これを IF 関数で示すとこうなります。

image

IFS 関数だとこれぐらい簡略化できるわけです。image

 

SWITCH 関数

SWITCH(スイッチ) 関数は、なんだかゲーム機のようでワクワクする名前ではありますが、これも条件によって処理を分けることができるものです。
IF 関数と違い、〇以上、〇未満といった条件を指定することができず、〇=△の条件しか使えません。

 

=SWITCH(〇,△、▲、□、■)

で、〇が、△だったら、▲、□だったら■という条件で指定します。

たとえばセル A 1が1だったら北海道、2だったら青森県、3だったら秋田県と表示するのであれば、

image
と書きます。

セルA1が2になれば、対応する青森県が表示されるわけです。

image

 

より実践的な例でいうと、 こういった現金取引のデータで、「打ち合わせ」だったら「会議費」、「切手」だったら「通信費」、「タクシー」だったら「旅費交通費」と表示することを考えてみます。

image

 

IF 関数だとこのように書きます。

image

SWITCH 関数だとこのように書けるので、かなり簡略化できるわけです。

image

しかしながら 、SWITCH関数も、Office 365または Office 2019で Excel を使っていないと使うことはできません。

IFS 関数とVLOOKUP関数の比較

IFS 関数を使ったとしても、条件が変更になれば、数式を変更しなければいけませんし、条件が増えた場合に数式も変えなければいけません。
数式は、通常目に見えないものですので、うっかり変更していないということもあり得るわけです。
また、数式の中に、桁の大きな数字を入れるのも私は苦手です。
うっかり一桁間違えたりします。

結論からいうと私はIFS関数は使っていません。
VLOOKUP関数の方が便利だからです。

 

先ほどの事例で IFS 関数だとこのように書きます。

これでも結構長いです。

image

VLOOKUP関数だと、条件を他のセルまたはシートに入れておけば、そこを参照して条件による処理ができます。

image

VLOOKUP関数は、セルB3を D3からF7の範囲の一番左、D列から探し、まずは2列目のパーセント、次に3列目の金額を参照しているのです。
最後の TRUE は完全に一致しないものでも検索するという意味で、今回のように180万以上360万未満というような条件のときに使います。

上記の画像だと、500万円で、360万円から660万円の範囲なので、20%をかけて、54万円を足しているわけです。

これなら、もしデータが変わったとしても参照している表を変えればよく、もし増えた場合も対応がしやすくなります。

 

VLOOKUP関数はやや難易度が高い関数ですので(その敷居を超える価値はありますが)、敷居を下げる意味で IFS 関数が追加されたのかもしれません。
ただ入力の手間やミスが減るということを考えると、VLOOKUP関数がやはりおすすめです。

 

SWITCH 関数と VLOOKUP関数の比較

SWITCH 関数の場合で先ほどの事例でいうと3つのパターンですので、まだいいのですが、条件がどんどん増えていくと入力の手間も増えますし、メンテナンスの手間も増え、かなり大変です。

この事例でも、3つだからいいのですが、47都道府県やるには、途方もない時間がかかります。

image

また数式の中に日本語を入れる場合、日本語モードと英数モードを切り替えなければいけませんので、入力するのはより大変です。

SWITCH 関数ではなく、 VLOOKUP関数を使えば対応表を準備しておき、それを参照するだけで済みます。

image

image

パターンはほぼ無限に増やすことができますし、間違いのリスクも減るわけです。
この場合の VLOOKUP関数は、最後にFALSEを入れます。
これだと完全に一致したものしか検索でヒットしません。
(空白のありなし、全角・半角も判別します)

 

 

新しい関数が出てきたとしても、私が最も好きで最も使っている VLOOKUP関数の地位は不動です。

 

VLOOKUP関数をぜひ使ってみていただければ。

それぞれのサンプルを置いておきます。

 

EX-ITサンプル VLOOKUP-IFS.xlsx

EX-ITサンプル VLOOKUP・SWITCH.xlsx

サンプルの所得税の計算(所得×税率)は事例を入力するのが大変で……VLOOKUP関数ですべて計算しています

 



■編集後記

昨日は、妹家族と。
甥っ子2人と田植え経験をした帰りでした。
私も2013年にやりましたが、いい経験だと思います。
娘にも経験してもらいたいかなと。
汚れるから嫌といわれるかもしれませんが。

「1日1新」

Playstationネットワークカード

 

■娘(2歳)日記

アイスクリーム屋さんごっこでは、「アイスください」といい、「Suicaでお願いします」というと喜びます。
早くもキャッシュレスです。

  • URLをコピーしました!