- エクセルの関数にはどんな組み合わせがあるのだろう?
- エクセル関数の具体的な組み合わせ方法について知りたい!
そんな思いにお応えできるようこの記事では、
- エクセル関数の組み合わせ一覧
- 具体的な組み合わせ使用方法
について解説しています。
関数の組み合わせ(ネスト)について理解を深め、便利に使いこなしましょう!
エクセル関数については下記にまとめ記事がありますので、こちらもご参考下さい。
エクセルで知っておくべき基本関数
組み合わせの前に、エクセルで知っておくべき基本の関数について紹介します。
下記の記事に10個の基本関数をまとめていますので、まとめて知りたい方はご参考ください。
-
【PDFダウンロード可】厳選!エクセル実務でよく使う関数一覧
そんな思いにお応えできるようこの記事では、 について解説しています。 うれしいPDFダウンロードのおまけもついていますので、是非ご活用下さい! エクセル関数については下記にまとめ記事がありますので、こ ...
続きを見る
今回はその中から
- IF関数
- VLOOKUP関数
について簡単に解説します。
この2つの関数は後ほど関数組み合わせの解説の際にも出てきますので内容を確認しておいてください。
IF関数
IF関数は、
- 条件によって一致した値を返してくれる関数
- =IF(論理式,値が真の場合,値が偽の場合 )の形で使用する
という関数です。
文章にすると少し難しく感じますが、場合分けをするだけです。下記の図のようなイメージです。
「B2セルが80以上かどうか」という条件に対して、条件を満たす場合はOK・条件を満たさない場合はNGというように場合分けをしているのです。
これを数式にすると、
=IF(B2>=80,"OK","NG)
という形になります。
VLOOKUP関数
次に、こちらも実務で使用頻度の高いVLOOKUP関数です。
VLOOKUP関数は、
- 指定した検索値をもとに表から値を探してくれる関数
- =VLOOKUP(検索値 , 範囲, 列番号, 検索方法 )の形で使用する
という関数です。
4つも値を指定しなければならないので一見複雑に感じますが、理屈が分かれば難しくありません。
私はエクセル講座でVLOOKUP関数について何度も教えたことがありますが、全く使ったことの無い方でも1~2時間で習得することができています。
やっていることは、値を抽出することです。
例えば「単価帳」という表があったとして、その表に対して商品名を元に単価を検索したいという場面です。
「単価帳の上から商品名を探していって、見つかったら単価の列を検索する」という目の動きそのものをVLOOKUP関数が代わりにやってくれるのです。
最終的には、下記のような数式で検索することができます。
=VLOOKUP(C4,$H$4:$I$6,2,FALSE)
解説してきたIF関数やVLOOKUP関数について、もちろん単体で使用しても大変便利なのですが組み合わせて使うとより複雑な場面にも対応することができるようになります。
エクセル関数の組み合わせについて
エクセルで関数を組み合わせることを、
関数のネスト
といいます。
実際には関数の中に関数を入れるような形となります。
例えばIF関数であればネストすることで場合分けを増やすことができます。
例えば、
- IF関数単体の場合:B2セルが80以上のときOK、80未満の場合NG
- IF関数をネストする場合:B2セルが80以上のときA、60以上のときB、60未満のときC
というようなイメージです。
IF関数同士のネストだけではなく、IF関数とVLOOKUP関数の組み合わせ等、違う関数同士でネストすることもできますのでいくつか具体的に解説していきます。
解説する組み合わせを一覧にまとめると下記の通りです。
組み合わせ | メリット |
IF関数×IF関数 | 場合分けを増やすことができる |
IF関数×VLOOKUP関数(論理式部分) | VLOOKUP関数で抽出した値を元に場合分けができる |
IF関数×VLOOKUP関数(値の真偽部分) | VLOOKUP関数で抽出する対象を場合分けできる |
LEFT関数×FIND関数 | 指定の文字までを抽出できる |
便利なエクセル関数の組み合わせ
IF関数×IF関数の組み合わせ
セルの値が、
- 80以上なら「A」を表示する
- 60~79なら「B」を表示する
- 60未満なら「C」を表示する
という場合を考えます。
セルの値が80以上かどうかについて場合分けし、満たさない場合さらにセルの値が60以上かどうかを場合分けしています。
最初の場合分けは通常のIF関数と変わらないので、通常通り数式を作っていきます。
B2セルが80以上のときAを表示する
までは同じですね。この後にもう1回IF関数を作ります。
B2セルが80以上のときAを表示し、そうではない場合で60以上の場合、Bを表示する
ここまでの数式を文章にするとこのようになります。
2つ目のIF関数は、あくまでB2セルが80以上ではないときの場合ということに注意してください。
その条件の中で60以上ということは、60~79ということを意味します。
また、2つ目のIF関数にはイコールをつけないのでこちらも注意してください。
最後はB2セルが80以上でも60~79でもない、すなわち59以下の場合なのでCを表示します。
2つ目のIF関数を閉じるカッコと1つ目のIF関数を閉じるカッコが必要なので最後は閉じるカッコが2つ続き、完成です。
Enterを押して確定すると場合分けの結果が表示されます。
他のセルにも適用すると、きちんとA・B・C3つの場合分けがされていることが確認できます。
IF関数×VLOOKUP関数の組み合わせ
次に、IF関数とVLOOKUP関数の組み合わせです。
IF関数は、
=IF(論理式,値が真の場合,値が偽の場合 )の形で使用する
という関数でした。
「論理式」の部分にVLOOKUP関数を入れるのか、「値が真の場合」・「値が偽の場合」の部分にVLOOKUP関数を入れるのかという2パターンの組み合わせを考えることができます。
IF関数の「論理式」部分にVLOOKUP関数を組み合わせる
テスト結果の表が別管理されており、合計得点が200点以上の場合Aクラス・そうでなければBクラスに分類するという例について考えます。
場合分けをしなければならないので、まずはIF関数から始めます。
次に論理式の部分となりますが、ここでVLOOKUP関数がきます。
今回、得点の合計をもとにクラスを判断するのでテスト結果から合計得点を抽出するVLOOKUP関数の数式をここで作成すればよいのです。
VLOOKUP関数の数式としては基本的なものです。
「学生番号」を検索値として「合計」の数値をとってくる数式なので、
- 検索値にはB4セル(学生番号)
- 範囲にはF4~J13セル(テスト結果の表)※コピーすることを考えて絶対参照に
- 列数は5(合計)
というようにそれぞれ指定しています。IF関数を考えず、普通にVLOOKUP関数の数式を作る場合と全く同じですね。
実際には今回IF関数の論理式部分でVLOOKUP関数を使っているので、VLOOKUP関数でとってきた値をIF関数の条件で使うという形となります。
続けて「200以上」という条件を記載します。
数式は以下のようになり、
=IF(VLOOKUP(B4,$F$4:$J$13,5,FALSE)>=200
VLOOKUPで取得した値が200以上だったら
というところまでできました。
あとは、
- 条件を満たす場合Aクラス
- 条件を満たさない場合Bクラス
というIF関数の残り部分を完成させるだけです。
最終的な数式は、
=IF(VLOOKUP(B4,$F$4:$J$13,5,FALSE)>=200,"Aクラス","Bクラス")
となりました。
C5~C13セルにもコピーすれば正しくクラス分けされていることが分かります。
IF関数の論理式部分にVLOOKUP関数を組み合わせるやり方については下記の動画でも解説しています。
IF関数の「値が真の場合」・「値が偽の場合」の部分にVLOOKUP関数を組み合わせる
次は、一般社員用と管理職用の評価基準表が分かれており、VLOOKUP関数で適切な表から値を取得したい場合を考えます。
模式図にすると以下のような場合分けになります。
それでは数式を作っていきます。
まずはIF関数の論理式部分に「区分が一般と等しいかどうか」の条件を記載します。
カンマで区切った後は「値が真の場合」すなわち区分が「一般」の場合なので、一般社員評価基準表から値を取得するためのVLOOKUP関数を作ります。
数式としては、
VLOOKUP(D3,$H$3:$I$8,2,FALSE)
となります。
IF関数の式の途中のVLOOKUP関数なのでイコールが不要なこと、範囲を絶対参照にしていることに注意しましょう。
一般社員向けの表から値を取得するためのVLOOKUP関数を作った後は、管理職向けの表から値を取得するためのVLOOKUP関数です。
数式としては、
VLOOKUP(D3,$H$11:$I$16,2,FALSE)
となります。範囲指定を管理職向けの表にしているだけですね。
この数式をIF関数の「値が偽の場合」の部分に入れます。
大分長い数式となりましたが、カッコを閉じれば完成です。
他のセルに数式を適用し、評価に応じた昇給額が取得できていることが分かります。
複雑に見えますが、場合分けをしているだけなので分解するとシンプルな構成です。
こちらも解説している動画がありますので、是非ご参考下さい。
LEFT関数×FIND関数の組み合わせ
最後にLEFT関数とFIND関数の組み合わせについて紹介します。
この組み合わせで、特定の文字までの文字を抽出することが実現できます。
先に2つの関数についてそれぞれ簡単に解説します。
LEFT関数とは?
LEFT関数とは、
- 先頭から指定した文字数を取り出してくれる関数
- =LEFT(文字列,文字数)の形で使用する
という関数です。
例えば下記のように住所の先頭から6文字を取り出したいとします。
LEFT関数を使って文字列と文字数を指定することで簡単に取り出すことができます。
FIND関数とは?
FIND関数は、
- 指定した文字が何番目にあるかを教えてくれる関数
- =FIND(検索文字列,対象,[開始位置])の形で使用する ※開始位置は省略可能
という関数です。
先ほどの住所の例ですと、「区」という文字が何番目にあるかを探すという使い方ができます。
この例だと全て6番目となりますが、「東京都高岡山区」など少し長い住所があった場合は区が7番目にでてくることになります。
このような場合にLEFT関数とFIND関数を組み合わせることが有効です。
LEFT関数とFIND関数の組み合わせ具体例
先ほどの住所の例で「区」までの住所を取り出したい場合、LEFT関数では文字数の指定しかできないため特定の文字までを抽出することができません。
そのため、FIND関数で「区」が何文字目にあるかを取得し、その値をLEFT関数の引数に指定してあげる必要があります。
「区」までの住所を問題無く抽出できています。
他のセルに数式をコピーすると、長い住所のときでもきちんと「区」までの住所が抽出できていることが分かります。
こちらについても解説している動画がありますので、参考にしてみてください!
ここまで解説してきたように、関数を組み合わせることでより便利にエクセルを使うことができます。
組み合わせの例は無限にありますので、色々トライしてみてください。