エクセルでよく使う必須の関数を短時間でマスター!
これだけ覚えておけば良い13個の関数を厳選しているので、すぐに仕事の早い人になれます!
RPA開発歴4年 / MICHIRU RPAエキスパート認定 / 業務改善アドバイザー
RPA導入代行サービスCoreBeeを運営しており、RPA開発に取り組む他、業務改善アドバイザーとしてあらゆる業種の業務改善に携わっている。
社内のエクセルマスターとしての地位を確立しており、今回その知識を最大限生かし執筆しています。
IF関数とは?
IF関数とは、ある論理式をあらかじめ指定し、論理式に対して【真】か【偽】かという判定を行うことができる関数です。
特定の条件を満たすかどうかを一瞬かつ正確に論理式通りにエクセル側が判定してくれるため、時間効率と正確性を同時に上げることができます。
IF関数の使い方
IF関数を用いるには、まず論理式を定義します。
論理式は【条件】と言い換えることができます。
つまり、IF関数は【自分で指定した条件を満たすかどうかを判定するための関数】です。
たとえば、ある部署における1ヶ月分の営業成績について【毎日の営業成績】から【目標を達成している日】だけを判定することなどが可能です。
基本的なIF関数の使い方は上記のとおりですが、IF関数は応用を知っておくことでさらに便利に活用することができます。
【応用編】複数の条件を処理する
今回は、例として上記のような条件を満たす表を作りたいものと想定します。
この場合、【達成か不達成か】という条件に加えて【表彰】の判定があります。
このように【複数の条件を処理する関数】は、IF関数ではなく【IFS関数】を利用します。
現状では、以下のような表に整理されていると想定します。
なお、この部署での【目標】は【20,000以上】とし【表彰対象】は【21,000以上】とします。
これをフローチャートに当てはめると、以下のような図となります。
以上のフローチャートをIFS関数で表現する場合には、以下のように記載します。
条件式にすると若干理解に時間がかかるかもしれません。
この式は、以下の順番で計算されています。
- B3セルが21,000を超えているか
- 真なら”表彰”を返し、偽なら次の条件式へ進む
- B3セルが20,000を超えているか
- 真なら”達成”を返し、偽なら【いずれの条件式も満たさなかった値】を返す
- 最後の条件式である【True,”不達成”】のうち、偽である”不達成”を返す
これをすべてのセルにコピーすると、以下のように表示されます。
このように、目で見て判断することなく社員の成績達成状況がわかるようになりました。
複数条件の使用例
IFS関数を利用する場面として、たとえば以下のようなケースが考えられます。
- 来店回数や利用回数に応じた顧客のランク判定
- 出勤日数に応じた特別休暇付与の判定
- 担当営業先の数に応じた月間売上目標の策定
IFS関数は、真/偽という2択のみならず【段階的な評価や複数の条件】がある場合に活躍します。
IF関数のみで複数の条件を設けることも不可能ではありませんが、IFS関数を利用したほうが簡単に条件式を作ることができるのです。
【応用編】OR(または)とAND(かつ)でさらに複雑な条件処理をする
IFS関数では【ある論理式に対して真か偽か】という判定を組み合わせることで、複数条件の処理が可能です。
この方法の他にも、複雑な条件処理を行う方法があります。
例として、【AND】と【OR】を用いた条件設定を行います。
【AND】は【○○であり、かつ××】という条件設定に使用します。
【OR】は【○○または××】という条件設定に使用します。
具体的に利用シーンを想定してみます。
まず【AND】ですが、たとえばある会社において40歳以上の男性に向けた健康診断が実施されることを想定します。
しかし、社員リストは男女混合のものであるとします。
この場合はリスト内から【性別が男性】であり、かつ【年齢が40以上】を満たす際に対象であるという判定をしてくれれば対象者が絞りやすくなります。
実際の処理は【対象判定】の列のセルに、【IF】と【AND】を組み合わせた次のような式を記入します。
まず【IF】を宣言しますが、すぐ後に【AND】で複数条件を定義することを宣言します。
続いてB列の値が【男性】と一致することとC列の値が【40以上】に一致する場合は【○】、そうでない場合は【×】を返すよう式を組みます。
これを実際にすべての対象判定セルに適用すると、以下のようになります。
ここで、しっかりと複数条件が適用されているかどうかを確認します。
B列の性別が【男性】かつC列の年齢が【40以上】の場合にのみ、D列に【○】が入っています。
いずれかの条件、または両方の条件を満たさない人については【×】が入っていることがわかります。
このように、複数条件両方を満たす際に活躍するのが【AND】です。
次に【OR】を解説します。
例として、ある会社のある部署では、【40歳以上】か【勤続年数が5年以上】になると昇給試験を受けることができるものと想定します。
しかしリストは勤続年数も年齢もバラバラに記載されているものしかないため、ここで【OR】を活用します。
【AND】と同様にD列に式を記載します。
=IFに続く表記を【OR】、条件はB列の勤続年数とC列の年齢を【5以上】【40以上】にそれぞれ変更します。
これをD列に適用すると、以上のように判定結果が表示されます。
では、正しく条件式が適用されているかを確認しましょう。
上の図にもあるとおり、B列【勤続年数】かC列【年齢】のいずれかの条件を満たせば【対象判定】が【○】となっています。
そして、両方の条件のいずれも満たさなかった場合のみ【×】と判定されていることがわかります。
このように抽出したい条件によって【AND】【OR】を活用することで、ひとつひとつの行や列を目視で確認することなく判定することができます。
複雑な条件処理例
IF関数+【AND】【OR】を組み合わせて利用する場面として、たとえば以下のようなケースが考えられます。
- 年齢と勤続年数の両方を条件とする社内制度などの適用範囲を特定する
- 見積書の数字のうち【単価】と【合計金額】のいずれかが条件に合致する発注先を選定する
【応用編】空白のセルを処理する
IF関数は論理式や条件式を用いるため、表の中に表示されている数字などは【計算結果】です。
式の矛盾や計算するべきセルが空白になっているなどの場合には、正しく関数が処理されません。
IF関数で計算するべき式の一部のセルが空白の場合、計算結果を空白にするという処理をすることで表の視認性の向上やミスの防止に役立ちます。
今回は上記の表を例としてみましょう。
ある製造業の企業で月次の不良品数と、数量に応じた損失額計を計算しているExcelファイルがあります。
計算式はB列とC列を掛け算したものをD列に表示するという単純なものです。
ただし、不良品がなかった場合はセルは空欄でよいのですが、進捗管理上【まだ不良品数がわかっていない】場合には【未確定】という文字を記入するルールであるとします。
この場合、D列は計算式なので文字列が入っていると【#VALUE!】というエラーが表示されることになります。
このような場合、IFの空白処理を使うことで、エラーを空白にすることができます。
D列の掛け算の式を、以下のように変更します。
【変更前】
【変更後】
変更後の式を解説します。
まず、【=IF(C4=”未確定”,】は論理式です。
C列に【未確定】の文字があったら、という論理式をここで宣言しました。
続けて、【 ,””,B4*C4)】の最初の【,””】は論理式が真の場合を表します。
つまり、【未確定】の場合には【””】つまり空白を返すという宣言をしています。
最後の【,B4*C4)】では論理式が偽の場合を表します。
つまり、【未確定】が入っていなければB列とC列を掛け算するように宣言しています。
これをすべてのD列のセルに適用すると、以下のような結果となります。
エラーが見えなくなったぶん見栄えもよくなりましたし、損失額計のセルが空白である拠点はまだ報告を受けていないことがすぐにわかるようになりました。
D工場については、不良品数のセルが空欄となっているために【不良品数0】としてしっかり計算されていることがわかります。
エラーは見えなくなりましたが【未確定】の部分に数字が入ったときに正常に動くか不安という方もいるでしょう。
試しにB工場の不良品数が確定したものとして、【不良品数1】を記入してみます。
【未確定】を【数字の1】に変えたことで、D列が【300】と正常に適用されたことがわかります。
空白セルの処理例
IF関数で空白セルを利用する場面として、たとえば以下のようなケースが考えられます。
- 紙で印刷するケースがあったり上司に見せることがあるエクセルファイルで、見栄えや視認性も気をつける必要がある
- 進捗管理上、完了していない処理についてはエラーではなく空白で表示されたほうがわかりやすい
- 複雑な計算を経ており、どこかが未記入の場合にすぐにわかるようにしたい
エラーは単一の関数を処理しているだけならばわかりやすいのですが、複数の行列を扱っている業務利用などでは視認性が悪くなります。
【記入されているように見える】ことから、処理の漏れやミスを招くことも考えられます。
随時更新していくような表を扱っている場合には、IF関数の空白処理が活躍するシーンもあるでしょう。
【応用編】文字列を含む場合の処理
文字列を含む処理は、上記【空白セルの処理】以外にも利用シーンが多くあります。
これまでEXCELでは、主に数字を扱ってきました。
しかし、特定の文字列を含む場合に文字列を返すという関数も利用できます。
例として、以下のような表があると想定します。
表中の注釈にも加えていますが、この表から【終日満席】であった日を探したいものとします。
しかしながら表は一ヶ月分あるため、ひとつずつ検索したり目視で確認するのは煩雑です。
そのため、【満席判定】のDセルに文字列を検索するIF関数を記入します。
論理式と条件式の記載方法は通常のIF関数を記入する際と同様です。
注意が必要なのは、【文字列を扱うとき】は【””】で文字列を囲むことです。
これを表全体に適用すると、以下のようになります。
わざわざシート内を検索してひとつずつ記入したり目視で1行ずつ確認するよりも、IF関数で処理をするほうがスピードも早く正確です。
文字列を含む場合の使用例
文字列を含むIF関数を利用する場面として、たとえば以下のようなケースが考えられます。
- 【優・良・可】など文字列で判定される成績
- 【晴・雨・曇】など文字で表される条件の判定
- 【部長・課長・係長】など役職を条件に設定したい場合
【応用編】IF関数の感覚でセルに色をつける
空白セルと記入済みのセルなどは見分けがつきやすいですが、すべてのセルに文字列や数字が入っていると見分けはつきにくくなります。
IF関数そのものでは、条件による分岐はできてもセルに色付けをする機能はありません。
しかし、EXCELには【条件付き書式】という設定があり、ここからIF関数と近い考え方で色付けをすることができます。
では、実際に【条件付き書式】を利用してみましょう。
ここでは例として、先に利用した【4月展示会実績】の表から【終日空席】の判定となった場所に色をつける作業を想定します。
【条件付き書式】を適用したいのがC列である場合は、C列を選択した状態で【条件付き書式】メニューの中から、【新しいルール】を選択します。
【C列の選択】
【条件付き書式のメニュー】
上記のように、【新しい書式ルール】の画面が表示されます。
これはIF関数でいうところの論理式や条件式を設定するための画面です。
今回はC列のうち【終日空席】のセルに色を付けたいので、ルールの種類は上から2番目にある【指定の値を含むセルだけを書式設定】を選択します。
次に、ルール内容を編集します。
これは論理式・条件式に当てはめるとわかりやすいでしょう。
【特定の文字列】を論理式として、【次の値を含む】は【真偽の判定】です。
【次の値を含む】のまま、隣の空欄エリアに【終日空席】を記入します。
そうすると、【終日空席】が【真】であるときにこのルールが適用されます。
最後に、【書式】のボタンから書式設定を行います。
今回はわかりやすく色付けするだけですので、試しに青色を選択して【OK】をクリックします。
適用したい条件が整ったら、【OK】をクリックします。
表に戻ってみると、自分が条件設定をしたとおりに【週日空席】のセルに色がついていることがわかります。
条件設定を変えれば別の条件をつけたりすることも可能ですので、様々な場面で活用することができます。
条件付き書式の使用例
条件付き書式を利用する場面として、たとえば以下のようなケースが考えられます。
- 関数を入力することなく条件判定をしたい
- 報告用や提出用ファイルとして色付けが必要
- 同一のセルに複数の条件判定を組み合わせたい
IF関数は1つのセルに1つの式を入れるという運用ですが、条件付き書式は、1つのセルに対していくつもの書式設定を加えることができます。
見栄えや視認性を重視するファイルの場合には、IF関数と合わせて条件付き書式が活躍するでしょう。
【エラー対処】もうエラーは怖くない!
IF関数で頻繁に起こるエラーのよくある原因について複数の例(3つ以上)を用いて説明
関数名の間違い【#NAME?】
関数名【=IF】の部分を間違ってしまうと、【そのような関数はない】というエラーとして【#NAME?】というエラーが帰ってきます。
単純な打ち間違いの場合のほか、条件式の真・偽の入力などの際に【””】(ダブルクォーテーション)を忘れている場合にもこのようなエラーが表示されます。
【解決例】
- 関数名が誤っていないかを確認する
- 必要な箇所に【””】が入っているかを確認する
参照先を削除してしまった【#REF!】
IF関数を含めほとんどの関数では、【○○のセルと××のセルを計算する】というように場所を指定します。
関数の作成時点ではエラーになっていなかったものがあとからエラーになる事例としては、【行や列を削除した】場合に起こりやすいといえます。
たとえば上記の場合、C列の判定は【B列が90点以上ならB1セルを返す】【90点未満ならB2セルを返す】という方法で合格・不合格判定をしています。
この状態で何らかの原因により、B2を含む2行目を削除してしまった場合、以下のようになります。
参照していたはずのB2というセルがなくなってしまった、という旨のエラーとなります。
【解決例】
- 削除してしまった参照先を再度記入する
- 削除されない場所に参照先を作る(シートの末尾・別シートなど)
参照できない値を参照している【#VALUE!】
【#VALUE!】のエラーは先にも一度触れましたが、【本来参照すべきでない値を参照している】というエラーと考えると理解しやすいでしょう。
たとえば計算式のはずなのに文字列を参照している場合や、エラーを起こしている関数のセルを参照させた場合も当然【#VALUE!】エラーとなります。
また、数値を参照していても文字が全角になっていると文字列として認識されるために【#VALUE!】が表示されます。
【解決例】
- 数値の全角半角を統一する
- 文字列が混入していないか確認する
- 参照先がエラー発生しているセルでないか確認する
IF系関数の種類はたくさんある!
IF関数には様々なバリエーションがあり、利用用途によって使い分けることで複雑な処理もこなすことができます。
この記事では中でも代表的なものを解説しましたが、以下のようなIF系関数も知っておくと、さらに作業効率の向上につながります。
IF関数 | 論理式に対して条件処理を行う |
IFS関数 | 論理式に対して複数の条件処理を行う |
SUMIF関数 | 条件を指定して数値を合計する |
AVERAGEIF関数 | 条件を指定して数値の平均を求める |
AVERAGEIFS関数 | 複数の条件を指定して数値の平均を求める |
COUNTIF関数 | 条件に一致するセルを数える |
COUNTIFS関数 | 複数条件に一致するセルを数える |
MAXIFS関数 | 複数の条件に一致する最大値を求める |
MINIFS関数 | 複数の条件に一致する最小値を求める |
この中でも、IFS関数とSUMIF関数は様々な場面で活用することができる非常に便利な関数です。
IF関数の使い方・応用まとめ
IF関数は、EXCELの中でも非常に重要な関数のひとつです。
IF関数・IF系関数を使いこなすことで、条件を満たすセルを導き出したり計算対象を絞って計算させることができるようになります。
これまで多くの時間を費やしてきた事務作業が大幅に短縮できる可能性があります。
また、目視で計算する作業に比べて正確性も高まるというメリットもあります。
今回紹介した応用例は、以下のとおりです。
- 複数の条件処理
- OR関数とAND関数でさらに複雑な条件処理
- 空白の処理
- 文字列の処理
- 色をつける処理
エクセルでよく使う必須の関数を短時間でマスターする!
→エクセルのよく使う関数まとめ13選記事