いまさら聞けないExcelの使い方講座

【Excel】「エクセルも使えます!」と言うために絶対覚えておきたい関数のテクニック

エクセル関数の基本を覚えよう

 エクセルのスキルを聞かれて、「(関数に自信がないから)表の作成くらいはできます……」と消極的に答えていませんか? 学生時代はスマホ中心だったからパソコンは苦手と感じている方、安心してください。諸先輩方もすべての関数は覚えていません。実際の業務で使う関数は20個程度でしょう。

 欲張らずに四則演算と基本関数の扱いに慣れておくほうが将来的に時短につながります。また、初めは難しいと感じる関数でも、業務で使っているうちに自然と覚えるはずです。今回は、関数の入力の基本と絶対に覚えておきたい関数ワザ5つをまとめて紹介します。

関数の基本と効率的な入力方法を覚えておこう

 関数を利用した式は「関数式」や「数式」と呼ばれます。単純な足し算「=A1+B1」も「数式」です。「=」から始まる式をまとめて「数式」と呼ぶことが多いですね。数値を合計するSUM関数なら「SUM関数の数式の引数を修正して~」などと説明されます。「引数」(ひきすう)は、関数が演算に利用するための情報です。SUM関数なら足し算の対象とするセルやセル範囲が引数になります。

 関数によって引数が異なりますが、追々覚えればいいでしょう。それより、数式の効率的な入力方法をマスターするのが先です。例えば、以下の表でセルF2~F11の値を合計する時、どのように操作すると効率的でしょうか? 「=SUM(F2:F11)」と手入力は避けたいですよね。

セルF2~F11(①)の値を合計するにはどうしましょう?

 [関数の挿入]ダイアログボックスが簡単に思えますが、あまり効率はよくありません。入力補助の機能を利用することをおすすめします。

 先頭に半角の「=」を入力すると、エクセルは「このセルには数式が入力される」と認識します。続けて、関数の数文字を打ち込むとリストが絞り込まれます。関数名をすべて入力する必要はありません。目的の関数名が出現したところでカーソルキーの[↓]で関数名を選択し、[Tab]キーを押します。

 SUM関数なら「=su」と入力して、[↓]キーで[SUM]を選択して[Tab]キーを押します。この操作により「=SUM(」まで入力されます。続けて引数にするセル範囲をドラッグして選択。そのまま[Enter]キーを押せば数式の入力完了です。数式の終わりの「)」も自動的に補完されます。

 複数の関数を組み合わせていると「)」の数が合わない旨のメッセージが表示されますが、その時は注意深く数式をチェックしましょう。まずは自動補完の機能があることを覚えておいてください。

「=su」と入力(②)すると関数の候補がリストで表示されます。[↓]キーを押して(③)[SUM]を選択(④)して[Tab]キーを押します(⑤)
「=SUM(」と入力されました(⑥)
ここでは売上金額を合計します。引数に指定するセルF2~F11をドラッグして選択(⑦)します。そのまま[Enter]キーを押します(⑧)
SUM関数を入力できました

①合計、カウント、平均はセットで覚える

数値を合計するSUM関数

 以下の例で「販売数」を合計する数式は「=SUM(E2:E11)」となります。なお、[Shift]+[Alt]+[=]のショートカットキーでSUM関数を入力することも可能です。ただし、隣接するセル範囲を自動的に引数と認識するため、正しく引数が指定されたかどうかをよく確認しましょう。

SUM関数の構文。セル範囲のほか、数値の直接指定や複数のセル範囲を指定することもできます。
販売数(E2~E11)を合計するために、セルI2に「=SUM(E2:E11)」と入力しました

 SUM関数の引数には、複数のセル範囲を指定することも可能です。列単位で複数のセル範囲を指定することはありますが、以下のように「上野店」を選択した合計を出したい場合は効率が悪くなるので、後述のSUMIF/SUMIFS関数を利用しましょう。

指定可能な条件があるなら、SUM関数ではなくSUMIF/SUMIFS関数を利用しましょう

データを数えるCOUNTA関数

 データの個数を数えるときはCOUNTA関数を使います。COUNTではなく、COUNT「A」です。COUNT関数で数えられるのは数値のみ、文字列や数式の結果の空白は無視します。数式の結果の空白とは、条件分岐の結果として表示する空白文字("")のことです。以下の例ではセルB4に空白文字が含まれています。

 一方、COUNTA関数はデータであれば何でも数えます。数式の結果の空白("")も数えることを覚えておいてください。引数の指定方法はSUM関数と同じなので覚えやすいと思います。

COUNTA関数の構文。セル範囲のほか、数値の直接指定や複数のセル範囲を指定することもできます。
セルE1には「=COUNTA(B1:B6)」と入力されています。データは4つに見えますが、セルB4には空白文字("")が含まれているので、合わせて「5」です。COUNT関数で数えられるのは数値のみです。セルB6の「3」は文字列として入力されているため数えられません

数値を平均するAVERAGE関数

 数値を平均するには、AVERAGE関数を使います。引数の指定方法はSUM関数、COUNTA関数と同じなのでセットで覚えておきましょう。

AVERAGE関数の構文。セル範囲のほか、数値の直接指定や複数のセル範囲を指定することもできます。
売上金額(E2~E11)を平均するために、セルI2に「=AVERAGE(E2:E11)」と入力しました

②条件を指定できる「IF」付き関数

条件を指定して合計するSUMIFS関数

 条件を指定して数値を合計する場合は、SUMIFS関数を利用しましょう。条件をひとつ指定可能なSUMIF関数もありますが、SUMIFS関数に条件をひとつ指定した結果と同じです。SUMIFS関数だけ覚えておけば事足ります。ただし、引数の[合計対象範囲]と[条件範囲]の行または列の数が一致していないとエラーとなります。

SUMIFS関数の構文。最初の引数[合計対象範囲]に合計するセル範囲を指定します。続けて[条件範囲]を指定して、条件を[条件]に指定します。
『販売店が「上野」』の条件で売上金額(E2~E11)を合計します。セルH5に「=SUMIFS(F2:F11,B2:B11,"上野")」と入力しました
『販売店が「上野」かつ席が「A」』の条件で売上金額(E2~E11)を合計します。セルH8に「=SUMIFS(F2:F11,B2:B11,"上野",C2:C11,"A")」と入力しました

 なお、Google スプレッドシートで条件を指定できる関数については以下の記事にもまとめてあります。

条件を指定して数えるCOUNTIFS関数

 条件を指定して数えるには、COUNTIFS関数です。SUMIFS関数と同様、COUNTIFS関数でCOUNTIF関数をカバーできます。

COUNTIFS関数の構文。[範囲]と[検索条件]を繰り返し指定します。ひとつのセットだけの指定も可能です
『販売数が「70以上」』の条件でレコード数を数えます。セルE2に「=COUNTIFS(E2:E11,">=70")」と入力しました
『販売数が「70以上」かつ席が「A」』の条件でレコード数を数えます。セルH5に「=COUNTIFS(E2:E11,">=70",C2:C11,"A"))」と入力しました

条件を指定して平均するAVERAGEIFS関数

 平均にも条件を指定できるAVERAGEIFS関数があります。もちろんAVERAGEIF関数もありますが、「S」付きのみでOKです。引数の指定方法はSUMIFS関数と共通。[平均対象範囲]と[条件範囲]の行または列の数は一致させてください。

AVERAGEIFS関数の構文。最初の引数[平均対象範囲]に平均するセル範囲を指定します。続けて[条件範囲]を指定して、条件を[条件]に指定します
『販売店が「新宿」』の条件で売上金額(E2~E11)の平均を求めます。セルH5に「=AVERAGEIFS(F2:F11,B2:B11,"新宿")」と入力しました
『販売店が「新宿」かつ席が「S」』の条件で売上金額(E2~E11)の平均を求めます。セルH8に「=AVERAGEIFS(F2:F11,B2:B11,"新宿",C2:C11,"S")」と入力しました

③数値の四捨五入、切り捨て、切り上げ

 小数点以下を四捨五入したり、百円未満を切り捨てて千円単位に揃えたりすることがありますよね。このような数値の「丸め」は、ROUND/ROUNDDOWN/ROUNDUPの3つの関数で簡単に処理できます。引数の指定方法は共通なので、よく使う四捨五入を覚えれば、切り捨て(ROUNDDOWN)と切り上げ(ROUNDUP)も同時に使えるようになります。

ROUND/ROUNDDOWN/ROUNDUP関数の構文。ROUNDは四捨五入、ROUNDDOWNは切り捨て、ROUNDUPは切り上げとなります。[数値]には処理する数値を指定します。[桁数]は揃える位を整数で指定します。
ROUND/ROUNDDOWN/ROUNDUP関数で、揃える位と処理する位をまとめた表です。セルD7には小数点以下を四捨五入する数式「=ROUND($B$1,A7)」と入力しています。丸める数値はセルA1、指定する[桁数]はセルA7に入力してあるので、それらを参照しています。

 ROUND/ROUNDDOWN/ROUNDUP関数の詳しい使い方は以下の記事を参考にしてください。

④同じ数式で結果が異なるのはなぜ? IF/IFS関数

 受け取ったファイルに含まれている数式はどれも同じように見えるけど結果が違う? IF/IFS関数をはじめて見たときに疑問に思う人もいるでしょう。条件によって処理が分岐されているため、数式が同じでも結果が切り替わるのです。

 IF関数は「もし~」なら「A」、そうでないなら「B」と条件を分岐できます。以下は簡単な使い方です。実務で利用される場合は、IF関数の引数としてIF関数を指定した複数の条件分岐や、ほかの関数と組み合わせたエラー処理などに使われます。

IF関数の構文。[論理式]を満たす場合に[真の場合]、満たさない場合は[偽の場合]が返されます。[真の場合][偽の場合]には数式を指定することも可能です。
セルB2には「=IF(A2>=60,"合格","不合格")」と入力してあり、60点以上なら「合格」、60点未満なら「不合格」と表示します。

 3つ以上の条件を指定するならIFS関数がおすすめです。例えば以下のような処理では、IF関数よりIFS関数のほうが簡単に記述できます。

IFS関数の構文。[論理式1]を満たす場合は[真の場合1]、[論理式2]を満たす場合は[真の場合2]...、と指定します。
セルF2には「=IFS(E2>700000,"A",E2>500000,"B",E2>300000,"C",TRUE,"D")」と入力してあります。合計が700,000より大きければ「A」、500,000より大きければ「B」、300,000より大きければ「C」、どの条件も満たさない(300,000以下)なら「D」と表示します

 IF関数やIFS関数の詳しい使い方は以下の記事も参考にしてください。

⑤検索して必要な値を取り出すVLOOKUP/XLOOKUP関数

 「ブイルックアップ」という単語を聞いたことがあるかもしれません。VLOOKUP関数のことです。表を縦方向に検索して、指定したデータに対応する値を取り出します。例えば、顧客Noから氏名や住所を取り出す、商品IDから商品名や単価を取り出すなどの処理に利用します。

 想像してみると、このような処理は実務でよくありますよね。以下は顧客Noから氏名を取り出すVLOOKUP関数の利用例です。数式が長くなりがちで、はじめての人は難しく感じるかもしれませんが、どのような動きをしているのかは把握しておきましょう。

VLOOKUP関数の構文。[検索値]を元に[範囲]の左端の列を探して、[範囲]の[列番号](何列目か)と同じ行にある値を返します。[検索の型]には検索方式を指定します。「FALSE」は完全一致、「TRUE」は近似一致で検索します。
顧客Noから氏名を取り出すVLOOKUP関数の数式「=VLOOKUP(E2,A2:C17,2,FALSE)」をセルF2に入力しました。セルE2には[検索値]にする値を入力してあります。[範囲]はセルA2~C17です。[範囲]のうち、氏名は2列目にあるので[列番号]は「2」としています。顧客Noと完全に一致する値を探すため[検索の型]は「FALSE」となります。

 VLOOKUP関数の後継として登場したXLOOKUP関数もあります。VLOOKUP関数が強化された新しい関数です。利用できるのは、本稿執筆時点でExcel 2021やMicrosoft 365のExcelのみですが、今後は使う機会も増えるでしょう。

XLOOKUP関数の構文。検索文字列があるセル範囲を指定する[検索値]、検索対象のセル範囲[検索範囲]、対応する値を取得するセル範囲[戻り範囲]の3つを指定すれば動作します。[見つからない場合][一致モード][検索モード]は省略可能です
顧客Noから氏名を取り出すXLOOKUP関数の数式「=XLOOKUP(E2,A2:A17,B2:B17)」をセルF2に入力しました。セルE2には[検索値]にする値を入力してあります。[検索範囲]はセルA2~C17、[戻り範囲]はセルB2~B17です。

 両関数とも、使い込むと複雑な処理も可能になります。以下の記事もぜひ参照してください。

便利な関数はほかにもたくさんある

 ここで紹介した関数以外にも、文字列の結合・分割する文字列操作、ある期間の日数を求めるといった日付の処理など、便利な関数はたくさんありますが、すべての関数を覚えてから使うわけにはいきません。簡単な関数から慣れていきましょう。