Excelで業務効率を大幅に上げるために覚えておきたい関数を用途別にまとめた。初心者から上級者まで役立つ関数40選だ。1つの関数をマスターするだけで、手作業で何時間もかかっていた作業が数秒でできるようになる。
集計・合計系(10選)
- SUM =SUM(A1:A10):指定範囲の合計を求める。最も基本的な集計関数。
- SUMIF =SUMIF(範囲,条件,合計範囲):条件を満たすセルだけを合計する。「東京支社の売上だけ合計」「特定の担当者の実績を集計」など日常業務で最も使う場面が多い関数の一つ。
- SUMIFS =SUMIFS(合計範囲,範囲1,条件1,…):複数条件の合計。「東京・2024年・商品Aの売上」のように3つ以上の条件を組み合わせた集計が可能。
- AVERAGE =AVERAGE(A1:A10):平均値を求める。テストの平均点・月間売上の平均など幅広く使える。
- AVERAGEIF =AVERAGEIF(範囲,条件,平均範囲):条件を満たすセルの平均を算出する。「男性のみの平均点」など条件付き平均に使う。
- COUNT =COUNT(A1:A10):数値が入ったセルの個数を数える。文字列セルはカウントされない点に注意が必要だ。
- COUNTA =COUNTA(A1:A10):空白以外のセルの個数を数える。文字列も含めてカウントするため、回答数の集計などに使う。
- COUNTIF =COUNTIF(範囲,条件):条件を満たすセルの個数を返す。「〇〇が何件あるか」の集計、重複チェック、特定の値の出現回数確認に便利。
- COUNTIFS =COUNTIFS(範囲1,条件1,…):複数条件のカウント。COUNTIFの複数条件版。
- SUBTOTAL =SUBTOTAL(9,A1:A10):フィルター中の表示セルのみ集計する。非表示行を除外できるため、フィルターをかけた状態での集計に必須の関数。第1引数の「9」がSUM相当。
検索・参照系(8選)
- VLOOKUP =VLOOKUP(検索値,範囲,列番号,0):縦方向にデータを検索して値を取得する。最もよく使う参照関数で、商品コードから商品名を引くなど「マスターデータ参照」に必須。第4引数は完全一致の「0(FALSE)」を基本とする。
- XLOOKUP =XLOOKUP(検索値,検索範囲,戻り範囲):VLOOKUPの後継。左方向・複数列・エラー処理が標準対応。Microsoft 365・Excel 2021以降で使用可能。
- HLOOKUP =HLOOKUP(検索値,範囲,行番号,0):横方向に検索する。ヘッダー行からデータを引く場合に使う。縦横が逆のVLOOKUP。
- INDEX =INDEX(範囲,行番号,列番号):指定した行・列のセル値を取得する。MATCH関数と組み合わせることで、VLOOKUPでは不可能な左方向への検索が実現できる。
- MATCH =MATCH(検索値,範囲,0):検索値が範囲の何番目にあるかを返す。INDEX+MATCHの組み合わせはExcel上級者の鉄板テクニック。
- OFFSET =OFFSET(基準,行,列,高さ,幅):基準セルからずらした位置の範囲を返す。動的に変わる集計範囲の作成に活用する。
- INDIRECT =INDIRECT(“A1”):文字列で指定したセル参照を返す。シート名を動的に変える場合、ドロップダウンで選んだシートのデータを引く場合に使う。
- CHOOSE =CHOOSE(番号,値1,値2,…):番号に対応する値を返す。1〜2の選択肢変換など、VLOOKUPが不要な簡易参照に使える。
文字列操作系(8選)
- LEFT =LEFT(文字列,文字数):左から指定した文字数を取り出す。電話番号の市外局番抽出、郵便番号の上3桁取得などに使う。
- RIGHT =RIGHT(文字列,文字数):右から指定した文字数を取り出す。ファイル名の拡張子取得などに使える。
- MID =MID(文字列,開始位置,文字数):途中から文字列を取り出す。住所から区名だけ抽出、コードの特定部分を切り出すなど。
- LEN =LEN(文字列):文字数を返す。制限文字数のチェック、空文字判定(=LEN(A1)=0)に使う。
- FIND =FIND(検索文字,対象):指定文字が何文字目にあるか返す。大文字・小文字を区別する(区別しない場合はSEARCH関数を使う)。
- SUBSTITUTE =SUBSTITUTE(文字列,旧,新):文字列を別の文字列に置換する。スペース除去(=SUBSTITUTE(A1,” “,””))・記号変換・不要な文字の削除に便利。
- TRIM =TRIM(文字列):余分なスペースを除去する。データ整形の基本。外部データインポート後の文字列クリーニングに必須。
- TEXT =TEXT(値,書式):数値を書式付き文字列に変換する。=TEXT(A1,”yyyy/mm/dd”)で日付を文字列化、=TEXT(A1,”#,##0″)で桁区切り付き数値に変換できる。
日付・時刻系(6選)
- TODAY =TODAY():今日の日付を返す。自動更新されるため「残り〇日」の計算(=期限-TODAY())に使う。
- NOW =NOW():現在の日付と時刻を返す。タイムスタンプ記録・経過時間の計算に使う。
- DATEDIF =DATEDIF(開始日,終了日,”D”):2つの日付の差を計算する。年齢計算(”Y”)・在籍日数(”D”)・残日数の算出に使う。Excel関数一覧には非掲載の「隠し関数」だが現在も動作する。
- WORKDAY =WORKDAY(開始日,日数):土日祝を除いた営業日後の日付を求める。納期計算・締め切り管理に活用。
- WEEKDAY =WEEKDAY(日付,2):曜日を数値で返す。第2引数「2」のモードでは1=月曜日〜7=日曜日になる。
- EOMONTH =EOMONTH(日付,0):月末日を返す。0で当月末、1で翌月末、-1で前月末が取得できる。
条件分岐・論理系(5選)
- IF =IF(条件,真,偽):条件が真なら値A、偽なら値Bを返す。最も基本的な条件分岐関数。「合格/不合格」「達成/未達」などの判定に使う。
- IFS =IFS(条件1,値1,条件2,値2,…):複数条件の分岐。ネストしたIFをシンプルに書ける。5段階評価のような多分岐処理に最適。
- AND =AND(条件1,条件2):全条件が真のとき TRUE を返す。IFの条件部分に組み込んで使う(=IF(AND(A1>=60,B1>=60),”合格”,”不合格”)など)。
- OR =OR(条件1,条件2):いずれかの条件が真のとき TRUE を返す。複数条件のどれか一つを満たせばOKの場合に使う。
- IFERROR =IFERROR(数式,エラー時の値):エラーが出たとき代替値を返す。VLOOKUPのエラー処理(=IFERROR(VLOOKUP(…),”未登録”))に必須。
統計・数値系(3選)
- RANK =RANK(数値,範囲,0):順位を返す。0で降順(大きい順)、1で昇順。売上ランキング・成績順位の自動算出に使う。
- LARGE =LARGE(範囲,順位):範囲内で〇番目に大きい値を返す。TOP3の抽出(=LARGE(A:A,1)で1位、=LARGE(A:A,2)で2位)に使う。
- ROUND =ROUND(数値,桁数):四捨五入する。ROUNDUP(切り上げ)・ROUNDDOWN(切り捨て)も覚えておきたい。桁数に「0」で整数、「2」で小数第2位まで、「-1」で10の位に丸める。
よくある疑問(FAQ)
VLOOKUPとXLOOKUPはどちらを使うべき?
Microsoft 365・Excel 2021以降であればXLOOKUPを使うのが基本だ。VLOOKUPは「検索列が必ず左端でなければならない」「列番号を手動で数える必要がある」という制約があるが、XLOOKUPはどの列でも検索・取得できる。また、見つからない場合のデフォルト値設定もXLOOKUPが直感的に書ける。古いExcel環境との互換が必要な場合のみVLOOKUPを使うのが合理的だ。
SUMIF と SUMIFS の使い分けは?
条件が1つだけならSUMIF、2つ以上ならSUMIFSを使う。ただし、SUMIFSは引数の順序がSUMIFと異なる(SUMIFSでは合計範囲が最初に来る)ため注意が必要だ。混乱を避けるために最初からSUMIFSに統一して覚えるほうが効率的だ。
関数がエラーになるときの対処法は?
- #VALUE!:引数の型が間違っている(文字列に数値演算など)
- #REF!:参照先のセルが削除されている。列・行の挿入削除後に発生しやすい。
- #N/A:VLOOKUP等で検索値が見つからない。IFERRORで囲んで代替値を設定する。
- #DIV/0!:0で割っている。分母が0にならないよう IF 条件を加える。
- #NAME?:関数名や範囲名のスペルが間違っている。英語関数名は大文字・小文字どちらでも可だが、スペルは正確に。
まとめ
Excelの関数は数百種類あるが、日常業務の9割は本記事の40選でカバーできる。まずSUM・IF・VLOOKUP(またはXLOOKUP)の3つを確実に使えるようにし、次にSUMIFS・COUNTIFS・TEXTを習得していくのが効率的な順番だ。エラーへの対処法を知っておくことで、トラブル時にも焦らずに対応できる。