【Excel応用】複数の関数を組み合わせて使うための前提知識まとめ
AさんAさん

関数をいろいろ使えるようになりましたが、もうちょっと細かい部分まで設定できたら良いのになと思うケースがたまにあります。
微妙に手作業が残ってしまうので、もっと便利な方法があるんですかね?

森田森田

関数を単独で使っていると、機能的にも物足りない場合がありますね。
その場合、複数の関数を組み合わせて使うと、不足する機能を補えて便利ですよ!
では、詳細を解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

単独の関数では機能が不足することがある

Excelの関数は、さまざまなケースを想定して多種多様な関数が500種類以上も用意されていますが、実務では単独の関数では機能が不足することがしばしばあります。

この場合、1つの数式で2つ以上の関数を組み合わせ、不足する機能を補うことがセオリーです。

一例として、VLOOKUPで商品マスタの複数列を転記したい場合、VLOOKUP単独では引数「列番号」が固定値になるため、列単位で別の数式を用意する手間があります。

この引数「列番号」に列番号を計算できるMATCHを組み合わせることで、1つの数式で複数列の転記をコピペで済ませることが可能です。

このように、複数の関数を組み合わせることで、実務での関数の活用機会の増加や、手作業削減等、時短効果の向上に役立ちます。

参考記事

VLOOKUP+MATCHの組み合わせテクニックの詳細は以下の記事をご参照ください。

関数の組み合わせパターン

1つの数式で複数の関数を組み合わせ方は、実務で主要なパターンは3種類あります。

順番に解説していきます。

【パターン①】ネスト

1つ目のパターンは、「ネスト」です。

ネストとは、複数の関数の数式を入れ子にすることを指します。

具体的には、メインの関数の引数にサブの関数を代入し、入れ子構造にした数式ですね。

前述のVLOOKUP+MATCHもネストです。
VLOOKUPがメイン、MATCHがサブ。

他に頻度の高いネストの例は、複数のIFを組み合わせるケースです。

これにより、2種類より多くの条件分岐を行うことが可能となります。

ネストの数式は、サブの関数が先に計算/処理され、その戻り値がメインの関数の引数となります。

よって、サブの関数の戻り値と、メインの関数の引数でデータ型の矛盾がないよう留意しましょう。

なお、関数の引数のデータ型を調べる際は「関数の引数」ダイアログ、関数の戻り値を調べる際にはTYPEを活用することがおすすめです。

参考記事

IF、関数の引数、TYPEの詳細は以下の記事をご参照ください。



【パターン②】戻り値の四則演算

2つ目のパターンは、複数の戻り値同士で「四則演算」することです。
四則演算は、加算/減算/乗算/除算の総称。

こちらは複数の関数の関係はメインもサブもなく、同列です。

一例として、条件別の平均値を計算したい場合、「条件別の合計÷条件別の個数」を行うといったイメージです。

数式的には、「SUMIFS÷COUNTIFS」の除算を行い、条件別の平均値を計算しました。

この数式は、四則演算の前に各関数の計算/処理が先に行われます。

後は、各関数の戻り値同士で四則演算の計算がなされます。

上記の商品名「バナナ」であれば、SUMIFSで求めた合計が「900」、COUNTIFSで求めた個数が「3」なので、「900÷3」の結果の「300」が最終的な戻り値になったというわけです。

参考記事

四則演算、SUMIFSCOUNTIFSの詳細は以下の記事をご参照ください。



【パターン③】戻り値の文字列連結

3つ目のパターンは、複数の戻り値同士を「文字列連結」することです。
文字列連結は、複数の文字列を1つの文字列としてつなげること。

こちらもパターン②と同様に複数の関数の関係はメインもサブもなく、同列です。

一例として、今期実績が前期と比べてどうか、売上高(増収or減収)と売上利益額(増益or減益)それぞれ別のIFで判定した結果を連結したものが以下です。

この数式もパターン②と同様に、文字列連結の前に各関数の計算/処理が先に行われます。

後は、各関数の戻り値同士が文字列として連結されます。

上記の四半期「1Q」であれば、売上高のIFの判定結果が「増収」、売上利益額のIFの判定結果が「減益」なので、それを連結した「増収減益」が最終的な戻り値になったというわけです。

参考記事

文字列連結の詳細は以下の記事をご参照ください。

複数関数の数式の入力ステップ

1つの数式で複数の関数を記述することは慣れないうちは難しいものです。

よって、慣れるまでは次のように段階的に数式を入力していくことをおすすめします。

各ステップの詳細をそれぞれ解説していきます。

今回の例はVLOOKUP+MATCHの数式です。

STEP1】各関数を単独で検証

STEP1は、組み合わせたい関数をそれぞれ単独の数式を記述し、想定通りの戻り値か検証しましょう。

今回の例では、VLOOKUPMATCHをそれぞれ単独で使い、戻り値を検証しています。

この段階で各数式に誤りがないかを確認できていると、修正が容易で無駄な手戻りを回避できます。

参考記事

数式の検証方法の詳細は以下の記事をご参照ください。

STEP2】各関数の数式を1つの数式へ代入

STEP2は、STEP1の数式を1つの数式へ代入していきましょう。

今回の例では、VLOOKUPMATCHをネストする組み合わせのため、VLOOKUPの引数「列番号」へMATCHの数式をコピペ等で代入しています。

不要になったサブの関数の数式は削除しても構いません。

長くなった数式の可読性を高める方法2

複数の関数を組み合わせた数式は、カッコやコンマ(,)等が増え、組み合わせる関数の数に比例して数式が長くなりがちです。

数式が長すぎると、自分が記述した数式であったとしても、後から解読するにも難儀しますし、第三者はさらに大変でしょう。

よって、数式の可読性を高める方法を2つ解説していきます。

【方法①】改行+スペース

1つ目の数式の可読性を高める方法は、改行とスペースを活用することです。
改行は「Alt+Enter」、スペースは「Space」キー。

実は、数式は改行やスペースを入れても戻り値に影響しません。

どのように改行とスペースを活用するか、一例として複数のIFをネストした数式をご覧ください。

通常の数式よりも、改行とスペースを活用した数式の方が読みやすく感じないでしょうか?

おすすめの使い方は、関数ごとに改行し、スペースでインデント風に階層を表現することです。
数式バーの右端にある「▼」をクリックで表示領域を広げることが可能(「▲」をクリックで元の表示領域へ切り替えも可)。

複数関数を組み合わせた数式を第三者にも理解してほしい場合、このテクニックで可読性を高めるよう工夫しましょう。

【方法②】作業セル

2つ目の数式の可読性を高める方法は、「作業セル」を活用することです。

作業セルとは、文字通り「作業用のセル」を指します。

1つ目の方法を駆使したとしても、数式中の関数の数が増えれば増えるほど、可読性の低下は避けられないため、状況によっては、作業セルを用いてシンプルな数式に分割しましょう。

一例として、VLOOKUP+MATCHの数式を作業セルで分割したものが以下です。

作業セルにセットしたMATCHの戻り値をVLOOKUPの数式で参照することで、数式がシンプルになりました。

また、MATCHの戻り値もワークシート上で確認でき、検証やメンテナンスも容易です。

ただし、作業セルも万能ではありません。

セル数が増えることで表が大きくなり過ぎ、他の操作がしにくくなる、配置場所に困るといったケースもあるため、ケースバイケースで1つの数式にまとめるか、作業セルで数式を分割するか使い分けましょう。

さいごに

いかがでしたでしょうか?

複数の関数を組み合わせて使うテクニックは、実務で関数を活用するための必須スキルと言っても過言ではないでしょう。

まずは単独で使うことに慣れた関数から、少しずつ関連する別の関数と組み合わせることにチャレンジすることをおすすめします。

なお、数式や関数を拙著で体系的に解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

関数の組み合わせができるようになってくると、機能Aの結果を機能Bへ渡すという概念にも慣れていきます。
そうなると、VBAやパワークエリ、パワーピボット等の他の機能にも応用が効くようになるため、Excel作業を楽にしたい方は、ぜひ関数の組み合わせからできるようになりましょう!