しーとちゃん しーとちゃん

けんじさん、Excelの関数って苦手意識があって、結局全部電卓で計算しちゃうんですよね…

けんじ けんじ

それ、めちゃくちゃもったいないよ。自分も入社したばかりの頃は同じだった。

しーとちゃん しーとちゃん

関数って難しそうなイメージがあって…

けんじ けんじ

実は基本の3つさえ覚えれば、日常業務の8割は乗り切れるんだ。今日はその3つを一から教えるね。

事務職として働き始めて8年になりますが、入社当初はExcelの関数をほとんど知らず、簡単な集計作業にも電卓とにらめっこしていました。振り返ると、その頃の自分に一番教えてあげたいのが、この記事で紹介する「SUM」「AVERAGE」「IF」の3つの関数です。この3つを覚えるだけで、日々の集計作業のスピードが大きく変わります。

この記事では、関数を触ったことがない方でもつまずかないように、基本の考え方から実際の入力方法、そしてつまずきやすいポイントまで解説します。なお、IF関数で条件によって表示を変える代わりに、条件に応じて自動で色を変えたい場合は条件付き書式が便利です。あわせて読んでみてください。

ノートパソコンの画面に表示されたデータ分析ダッシュボード

関数とは何か

関数とは、あらかじめ用意された「計算の指示」のことです。たとえば「A1からA10までを全部足す」という計算を毎回手入力するのは大変ですが、SUM関数を使えば =SUM(A1:A10) の一行で済みます。

関数の基本の書き方は、以下の形が共通のルールです。

=関数名(引数1, 引数2, ...)

先頭に半角の「=」を入力することで、セルに「これから計算するよ」と伝えます。関数名の後ろのカッコの中に入れる情報を「引数(ひきすう)」と呼びます。

入力するときの3つのルール

関数がうまく動かない原因の多くは、計算の中身ではなく入力のルールにあります。次の3つを最初に覚えておくと、無駄なつまずきが減ります。

ルール 内容
記号はすべて半角 = ( ) , " を全角で入力すると動きません
文字列は " で囲む "合格" のように囲む。数値は囲まない
引数の区切りはカンマ 日本語入力がオンのまま 、 を打つとエラーになります

関数名は小文字で入力しても構いません。確定した後に自動で大文字になれば、Excelが関数として認識できた証拠です。大文字にならない場合はスペルミスを疑ってください。

SUM関数:合計を求める

SUM関数は、指定した範囲の数値をすべて足し算する関数です。もっとも使用頻度が高い関数のひとつです。

基本の使い方

=SUM(A1:A10)

これで、セルA1からA10までの合計が計算されます。連続していないセルを合計したい場合は、カンマで区切って指定します。

=SUM(A1:A5, C1:C5)

オートSUMで一瞬で入力する

数値が並んだ列のすぐ下のセルを選んで Alt + Shift + =(機種によっては Alt + =)を押すと、Excelが範囲を推測してSUM関数を入れてくれます。表全体を選択してから押せば、行方向・列方向の合計を一度にまとめて入れることも可能です。この操作は自分が一番よく使うショートカットで、詳しくはよく使うショートカットキー一覧にまとめています。

よくある入力ミス

自分が新人によく見かけるミスは、範囲指定のコロン「:」とカンマ「,」を混同してしまうケースです。「:」は「から〜まで」という連続した範囲、「,」は「離れた複数の範囲」を意味します。この違いを理解していないと、意図しない集計結果になってしまいます。

もうひとつ多いのが、合計欄まで範囲に含めてしまう二重計上です。小計を出した表の一番下でさらに =SUM(B2:B20) としたときに、範囲の中に小計行が入っていると、金額が実際の倍近くになります。合計が妙に大きいと感じたら、まず範囲に小計行が混ざっていないか確認してください。表の途中に小計がある場合は、SUMではなく =SUBTOTAL(9, B2:B20) を使うと、範囲内のSUBTOTALを自動で除外してくれます。

行を挿入したときに範囲が伸びない問題

=SUM(B2:B10) と書いた表の最終行(10行目)の下に新しい行を追加しても、範囲は B2:B10 のままで、追加分が合計されません。防ぐには、データ範囲より1行余分に取っておく(B2:B11 としておき、11行目は空けておく)か、範囲を Ctrl + T でテーブルに変換しておくのが確実です。テーブルにしておくと、行を足したときに集計範囲が自動で広がります。

AVERAGE関数:平均を求める

AVERAGE関数は、指定した範囲の数値の平均値を計算する関数です。

=AVERAGE(B2:B20)

SUMとAVERAGEの使い分け

「合計を人数で割れば平均になるのでは?」と思うかもしれませんが、AVERAGE関数を使えば、割り算の計算を別途書く必要がありません。また、範囲内に空白セルがあった場合、AVERAGE関数は自動的にその空白セルを計算対象から除外してくれます。これは =SUM(範囲)/COUNT(範囲) を手動で組み立てるより確実で、入力ミスも減らせます。

関数 計算内容 こんな時に使う
SUM 合計 売上の月間合計を出したい
AVERAGE 平均 テストの平均点を出したい

空白と0はまったく別物

ここは実務で結果が変わる重要なポイントです。AVERAGEは空白セルを無視しますが、0が入力されているセルは1件として数えます。

たとえば5人分の点数欄のうち、1人が欠席で空白なら、AVERAGEは4人で割った平均を返します。ところが「欠席は0点」として0を入力していると、5人で割った平均になり、値が下がります。どちらが正しいかは集計の目的次第なので、「未入力なのか、0なのか」を表の中ではっきり区別しておいてください。自分は未入力の欄に「-」を入れて、後から見た人が判断に迷わないようにしています。

件数を数える関数もセットで覚える

平均が思った値にならないときは、そもそも何件で計算されているかを確認すると原因がすぐ分かります。

関数 数えるもの
COUNT(範囲) 数値が入ったセルの数
COUNTA(範囲) 空白でないセルの数(文字列も含む)
COUNTBLANK(範囲) 空白セルの数

COUNTは文字列を数えないので、「COUNTAは20件なのにCOUNTは18件」なら、数値のはずの2件が文字列になっていると分かります。この状態は後述の #VALUE! の原因にもなります。

IF関数:条件によって結果を変える

IF関数は、指定した条件が「true(真)」か「false(偽)」かによって、表示する内容を変える関数です。3つの引数を使うのが基本形です。

=IF(論理式, 真の場合の値, 偽の場合の値)

具体例で理解する

たとえば、テストの点数が70点以上なら「合格」、それ未満なら「不合格」と表示したい場合は、以下のように書きます。

=IF(B2>=70, "合格", "不合格")

文字列(テキスト)を結果として表示したい場合は、必ずダブルクォーテーション " で囲む必要があります。自分が最初につまずいたのもここで、クォーテーションを忘れてエラーになった経験が何度もあります。

ノートパソコンのキーボードに手を置いている様子

IF関数でよく使う比較演算子

演算子 意味 例
= 等しい B2=100
> より大きい B2>70
>= 以上 B2>=70
< より小さい B2<70
<= 以下 B2<=70
<> 等しくない B2<>0

「以上」と「より大きい」の取り違えは、境界のちょうど70点の人の扱いが変わる原因になります。仕様を確認するときは「70点は合格に入りますか?」と具体的な数字で聞くのが確実です。

AND・ORで複数の条件を組み合わせる

「筆記が70点以上、かつ実技も70点以上なら合格」のように条件が2つある場合は、ANDやORを組み合わせます。

=IF(AND(B2>=70, C2>=70), "合格", "不合格")
=IF(OR(B2>=90, C2>=90), "特待", "")

ANDは「すべて満たす」、ORは「どれかを満たす」です。偽の場合に何も表示したくないときは、""(空文字)を指定します。

条件が3つ以上になったら

IF関数は入れ子(ネスト)にできますが、増えるほど読みづらくなります。

=IF(B2>=90, "A", IF(B2>=70, "B", IF(B2>=60, "C", "D")))

Excel 2019以降やMicrosoft 365ならIFS関数が使え、同じ処理をネストなしで書けます。IFSは最大127個の条件を設定できます。

=IFS(B2>=90, "A", B2>=70, "B", B2>=60, "C", TRUE, "D")

上から順に判定され、最初に成立した条件の値が返ります。最後の TRUE, "D" は「どれにも当てはまらなかった場合」の受け皿です。これを書き忘れると、該当なしのときに #N/A が出ます。なお、この手の段階判定はVLOOKUPの近似一致で対応表から引く方法もあり、条件が増えるほどそちらのほうが管理しやすくなります。

条件に合うものだけ集計する

SUM・AVERAGE・IFを覚えたら、次の一歩として「条件付きの集計」を押さえると仕事の幅が一気に広がります。

関数 内容 例
SUMIF(範囲, 条件, 合計範囲) 条件に合う行だけ合計 =SUMIF(A2:A100,"東京",C2:C100)
COUNTIF(範囲, 条件) 条件に合う件数 =COUNTIF(A2:A100,"東京")
AVERAGEIF(範囲, 条件, 平均範囲) 条件に合う行だけ平均 =AVERAGEIF(A2:A100,"東京",C2:C100)
SUMIFS(合計範囲, 範囲1, 条件1, ...) 複数条件で合計 =SUMIFS(C2:C100,A2:A100,"東京",B2:B100,"4月")

SUMIFとSUMIFSは引数の順番が違う点に注意してください。SUMIFは合計範囲が最後、SUMIFSは合計範囲が最初です。ここは自分も未だに間違えるところで、迷ったら数式バーに表示される引数のガイドを確認しています。

条件には ">=70" のように比較演算子を文字列で書いたり、"東*" のようにワイルドカードを使ったりもできます。集計の切り口が複数ある場合は、関数を並べるよりピボットテーブルを使ったほうが早いことも多いので、目的に応じて使い分けてください。

3つの関数を組み合わせる

実務では、これら3つの関数を組み合わせて使う場面が多くあります。たとえば「平均点が70点以上なら『目標達成』、未満なら『未達成』」と表示したい場合は、以下のように組み合わせます。

=IF(AVERAGE(B2:B20)>=70, "目標達成", "未達成")

このように、関数の中に別の関数を入れる書き方を「ネスト(入れ子)」と呼びます。最初は複雑に見えますが、「まずAVERAGE(B2:B20)の部分だけで平均が出る」「その結果をIF関数の条件に使う」と分解して考えると理解しやすくなります。

データがぎっしり表示されたパソコンの画面

相対参照と絶対参照

数式を書いたセルの右下をドラッグしてコピー(オートフィル)すると、参照するセルも自動でずれていきます。1行下にコピーすれば B2 は B3 になる、という動きです。これを相対参照と呼び、行ごとに同じ計算を並べたいときに便利な仕組みです。

困るのは、消費税率や単価のように「1か所だけを全行から参照したい」ケースです。そのまま下にコピーすると参照が下へずれ、空白セルを見にいって結果が0になります。

参照を固定するには、数式の中でそのセルを選んだ状態で F4 キーを押します。押すたびに次のように切り替わります。

表示 固定される場所
B2 どちらも固定しない(相対参照)
$B$2 行・列とも固定(絶対参照)
B$2 行だけ固定
$B2 列だけ固定
=B2*$E$1

このように書いておけば、下にコピーしても税率が入った E1 を見続けます。「コピーした瞬間に結果が全部おかしくなった」というときは、まずこの $ の付け忘れを疑ってください。

関数入力時のよくあるエラーと対処法

エラー表示 主な原因 対処法
#DIV/0! 0で割り算をしている 割る数が0でないか確認する
#VALUE! 数値であるべき場所に文字列が入っている セルの中身が数値かどうか確認する
#NAME? 関数名のスペルミス、引用符の付け忘れ 関数名や文字列の書き方を見直す
#REF! 参照しているセルが削除されている 数式内のセル参照を確認する
#N/A 検索した値が見つからない 検索関数側の問題。型やスペースを確認する
##### 列幅が足りない(エラーではない) 列の境界をダブルクリックして幅を広げる

自分が最も多く見てきたのは #VALUE! エラーです。セルの見た目は数字でも、実際には「文字列として保存された数字」になっていることがあり、これがSUMやAVERAGEでエラーの原因になります。セルの左上に緑の三角マークが出ている場合は、この状態を疑ってみてください。

文字列として保存された数値を直す4つの方法

システムからCSVで書き出したデータを開くと、この状態になっていることがよくあります。直し方はいくつかあり、状況に応じて使い分けます。

  1. 緑の三角から変換する:対象のセルを選び、表示される警告マークをクリックして「数値に変換する」を選ぶ。件数が少ないときはこれが最速です
  2. 区切り位置を使う:対象の列を選び、[データ]→[区切り位置]→そのまま[完了]。設定を変えずに完了を押すだけで数値として読み直されます。1列まとめて直したいときに便利です
  3. 1を掛ける:空いたセルに 1 を入力してコピーし、対象範囲に[形式を選択して貼り付け]→[演算:乗算]。見た目を変えずに数値化できます
  4. VALUE関数を使う:別の列に =VALUE(A2) と書いて変換し、結果をコピーして[値のみ貼り付け]で元の列に戻します

書式を「文字列」から「標準」に変えるだけでは直らないことが多い、というのが引っかかりやすい点です。書式の変更は、その後に入力する値に適用されるもので、すでに入っている値は文字列のまま残ります。上の1〜4のいずれかで「入力し直させる」必要があります。

数式の中身を確かめる2つの技

長い数式が思った結果にならないときは、次の方法で切り分けると早いです。

  • 部分評価:数式バーで確認したい部分(たとえば AVERAGE(B2:B20) の箇所)をドラッグして選び、F9 を押すと、その部分だけの計算結果が表示されます。確認したら Esc で元に戻します(Enter を押すと値に置き換わってしまうので注意)
  • 数式の表示:Ctrl + Shift + ^(半角/全角のあたりのキー)でシート全体を数式表示に切り替えられます。どのセルに数式が入っていて、どこが手打ちの値なのかが一目で分かります

「計算結果が0のまま更新されない」ときは、数式タブの計算方法が「手動」になっている可能性もあります。その場合は F9 で再計算するか、[数式]→[計算方法の設定]を「自動」に戻してください。

覚える順番

  1. = と半角記号のルールに慣れる
  2. SUMをオートSUM(Alt + Shift + =)で入れられるようにする
  3. AVERAGEで平均を出し、空白と0の違いを意識する
  4. COUNTとCOUNTAで件数を確認する癖をつける
  5. IFで2択の判定を書く
  6. F4 で絶対参照を固定する
  7. SUMIF・COUNTIFで条件付き集計に進む
  8. エラーが出たら型・参照・範囲の3点を確認する

この順番で1つずつ手を動かすと、だいたい2週間ほどで日常の集計は関数で回せるようになります。自分もこの流れで覚え直したことで、月末の集計作業が半日から1時間ほどに短縮できました。

まとめ

SUM・AVERAGE・IFの3つの関数を覚えるだけで、日々の集計作業の多くはカバーできます。まずはこの3つを実際の業務データで試してみて、慣れてきたら関数同士を組み合わせる書き方にも挑戦してみてください。

そのうえで、絶対参照($)と「文字列として保存された数値」の直し方を押さえておくと、原因が分からず手が止まる時間がぐっと減ります。関数そのものより、この2つでつまずいている人のほうが実は多いです。

デスクに置かれたノートパソコンとメモ帳

しーとちゃん しーとちゃん

SUMとAVERAGEとIF、たった3つでこんなに応用が効くんですね!今度の集計、電卓じゃなくて関数でやってみます。

けんじ けんじ

それだけでも作業時間はかなり短縮できるはずだよ。もし結果がおかしかったら、範囲に小計行が混ざっていないかと、ドル記号の付け忘れをまず見てみてね。慣れてきたら、また次のステップも紹介するね。