Excel(エクセル)には500以上もの関数がありますが、すべてを覚える必要はありません。実際に日常業務や資料作成でよく使うのは30〜40種類程度です。
この記事では、Excel初心者から上級者まで役立つ関数を以下のカテゴリ別に一覧で紹介します:
- 基本の計算関数:まず覚えるべき必須関数
- 条件付き関数:IF文や条件に応じた計算
- 検索・参照関数:VLOOKUPなどデータ検索
- 文字列操作関数:テキストの加工・結合
- 日付・時刻関数:日付計算や期間算出
- データ分析関数:統計や集計処理
- 論理・情報関数:エラー処理や条件判定
Excel関数の基本的な使い方

関数の書き方
Excelの関数は以下の形式で記述します:
=関数名(引数1, 引数2, ...)
基本ルール
- イコール(=)から始める:関数は必ず「=」で開始
- 関数名は英語:SUM、IF、VLOOKUPなど
- 引数はカンマで区切る:複数の値を指定する場合
- セル範囲はコロンで表現:A1:A10(A1からA10まで)
入力のコツ
オートコンプリート機能の活用
=SU と入力すると、SUMなどの候補が表示される
F4キーで絶対参照に変換
A1 → $A$1(絶対参照)
A1 → A$1(行のみ固定)
A1 → $A1(列のみ固定)
必須の基本関数一覧
計算の基本関数
SUM(合計)
概要:指定した範囲の数値の合計を計算
基本構文
=SUM(数値1, 数値2, ...)
=SUM(範囲)
使用例
// 基本的な使い方
=SUM(A1:A10) // A1からA10までの合計
=SUM(A1, B1, C1) // 個別セルの合計
=SUM(A1:A5, C1:C5) // 複数範囲の合計
実務での活用例
- 売上データの月次合計
- 費用明細の総額計算
- 在庫数量の合計
AVERAGE(平均)
概要:指定した範囲の数値の平均値を計算
基本構文
=AVERAGE(数値1, 数値2, ...)
=AVERAGE(範囲)
使用例
=AVERAGE(B1:B20) // 成績の平均点
=AVERAGE(C2:C100) // 売上の平均値
注意点:空白セルは除外され、0は計算に含まれる
MAX・MIN(最大値・最小値)
概要:指定した範囲の最大値または最小値を取得
使用例
=MAX(D1:D50) // 最高得点
=MIN(D1:D50) // 最低得点
=MAX(E:E) // E列全体の最大値
実務での活用例
- 売上実績の最高記録
- 在庫の最少数量
- 価格帯の上限・下限
COUNT・COUNTA(カウント)
COUNT:数値が入力されているセルの個数
=COUNT(F1:F100) // 数値セルの個数
COUNTA:空白以外のセルの個数
=COUNTA(G1:G100) // データ入力済みセルの個数
COUNTBLANK:空白セルの個数
=COUNTBLANK(H1:H100) // 空白セルの個数
実務での活用例
- 回答者数の集計
- 欠席者数のカウント
- データ入力状況の確認
条件付き関数

IF(条件分岐)
概要:条件に応じて異なる値を返す最も重要な関数
基本構文
=IF(条件式, 真の場合の値, 偽の場合の値)
基本的な使用例
成績判定
=IF(A1>=60, "合格", "不合格")
売上評価
=IF(B1>100000, "目標達成", "未達成")
複数条件(ネストIF)
3段階評価
=IF(C1>=90, "優", IF(C1>=70, "良", "可"))
売上ランク判定
=IF(D1>=1000000, "S", IF(D1>=500000, "A", IF(D1>=200000, "B", "C")))
実務での活用場面
- 人事評価:点数に応じた評価区分
- 在庫管理:発注点での自動判定
- 顧客分類:購入金額による顧客ランク
COUNTIF・SUMIF・AVERAGEIF(条件付き集計)
COUNTIF(条件に合うセルの個数)
基本構文
=COUNTIF(範囲, 条件)
使用例
=COUNTIF(E1:E100, ">50") // 50より大きい値の個数
=COUNTIF(F1:F100, "合格") // "合格"の個数
=COUNTIF(G1:G100, ">=60") // 60以上の個数
=COUNTIF(H1:H100, "<>"&"") // 空白以外の個数
SUMIF(条件に合う値の合計)
基本構文
=SUMIF(範囲, 条件, [合計範囲])
使用例
=SUMIF(I1:I100, ">0", J1:J100) // I列が正数の場合のJ列合計
=SUMIF(K1:K100, "東京", L1:L100) // 東京の売上合計
AVERAGEIF(条件に合う値の平均)
使用例
=AVERAGEIF(M1:M100, ">=60", N1:N100) // 60点以上の平均点
COUNTIFS・SUMIFS・AVERAGEIFS(複数条件)
SUMIFS(複数条件の合計)
基本構文
=SUMIFS(合計範囲, 条件範囲1, 条件1, 条件範囲2, 条件2, ...)
使用例
// 東京かつ売上100万以上の合計
=SUMIFS(C:C, A:A, "東京", B:B, ">=1000000")
// 2023年かつ特定商品の売上合計
=SUMIFS(売上, 年度, "2023", 商品名, "商品A")
実務活用例
// 部門別・期間別の売上集計
=SUMIFS(売上金額, 部門, "営業", 日付, ">=2023/1/1", 日付, "<=2023/12/31")
検索・参照関数
VLOOKUP(縦方向検索)
概要:表の左端の列で値を検索し、指定した列の値を取得
基本構文
=VLOOKUP(検索値, 表の範囲, 列番号, [検索方法])
基本的な使用例
商品コードから商品名を検索
=VLOOKUP(A2, 商品マスタ!A:D, 2, FALSE)
社員番号から部署名を取得
=VLOOKUP(B2, 社員マスタ!A:E, 4, FALSE)
検索方法の指定
- FALSE(完全一致):推奨、正確な検索
- TRUE(近似値一致):ソート済みデータで使用
エラー対策
IFERROR関数との組み合わせ
=IFERROR(VLOOKUP(C2, マスタ!A:B, 2, FALSE), "該当なし")
HLOOKUP(横方向検索)
概要:表の上端の行で値を検索し、指定した行の値を取得
使用例
=HLOOKUP(D2, 月別売上!A1:M10, 3, FALSE)
XLOOKUP(新世代検索関数)
概要:VLOOKUPの進化版(Microsoft 365/Excel 2021以降)
基本構文
=XLOOKUP(検索値, 検索配列, 戻り配列, [見つからない場合], [一致モード], [検索モード])
VLOOKUPとの比較
// VLOOKUP(従来)
=VLOOKUP(E2, A:D, 3, FALSE)
// XLOOKUP(新方式)
=XLOOKUP(E2, A:A, C:C, "データなし")
XLOOKUPの利点
- 左側の列も検索可能
- エラー時の戻り値を直接指定
- 複数条件での検索が容易
INDEX・MATCH(組み合わせ検索)
概要:VLOOKUPより柔軟な検索が可能
基本構文
=INDEX(戻り範囲, MATCH(検索値, 検索範囲, 0))
使用例
=INDEX(C:C, MATCH(F2, A:A, 0))
利点
- 左側の列からも検索可能
- 列の挿入・削除に影響されない
- 複雑な条件での検索が可能
文字列操作関数

文字列結合
CONCATENATE・&演算子
文字列の結合
=CONCATENATE("姓", "名")
="田中" & "太郎" // 結果:田中太郎
=A1 & " " & B1 // 間にスペースを挟んで結合
TEXTJOIN(区切り文字付き結合)
基本構文
=TEXTJOIN(区切り文字, 空白無視, テキスト1, テキスト2, ...)
使用例
=TEXTJOIN(", ", TRUE, A1:A5) // カンマ区切りで結合
=TEXTJOIN("-", FALSE, B1, C1, D1) // ハイフン区切り
文字列抽出
LEFT・RIGHT・MID
LEFT(左端から抽出)
=LEFT(A1, 3) // 左から3文字
=LEFT("Excel関数", 5) // 結果:Excel
RIGHT(右端から抽出)
=RIGHT(B1, 4) // 右から4文字
=RIGHT("2023年度", 2) // 結果:年度
MID(途中から抽出)
=MID(C1, 3, 5) // 3文字目から5文字
=MID("ABC-123-XYZ", 5, 3) // 結果:123
実務での活用例
電話番号の分割
// 03-1234-5678 から市外局番を抽出
=LEFT(D1, FIND("-", D1)-1)
// 郵便番号の前3桁
=LEFT(E1, 3)
文字列検索・置換
FIND・SEARCH(位置検索)
FIND(大文字小文字を区別)
=FIND("@", F1) // @マークの位置
SEARCH(大文字小文字を区別しない)
=SEARCH("excel", G1) // excelの位置(EXCELも該当)
SUBSTITUTE・REPLACE(置換)
SUBSTITUTE(文字列置換)
=SUBSTITUTE(H1, "旧", "新") // "旧"を"新"に置換
=SUBSTITUTE(I1, " ", "") // スペースを削除
REPLACE(位置指定置換)
=REPLACE(J1, 5, 3, "新文字") // 5文字目から3文字を置換
文字列処理
LEN(文字数取得)
=LEN(K1) // 文字数をカウント
=LEN("Hello World") // 結果:11
TRIM(空白削除)
=TRIM(L1) // 前後と連続する空白を削除
=TRIM(" Excel 関数 ") // 結果:Excel 関数
UPPER・LOWER・PROPER(大文字小文字変換)
=UPPER(M1) // すべて大文字
=LOWER(N1) // すべて小文字
=PROPER(O1) // 頭文字のみ大文字
日付・時刻関数
現在日時取得
TODAY・NOW
TODAY(今日の日付)
=TODAY() // 2025/7/13
NOW(現在の日時)
=NOW() // 2025/7/13 14:30:25
日付作成
DATE・TIME
DATE(日付作成)
=DATE(2025, 7, 13) // 2025年7月13日
=DATE(P1, Q1, R1) // セル参照で日付作成
TIME(時刻作成)
=TIME(14, 30, 0) // 14:30:00
日付要素抽出
YEAR・MONTH・DAY
=YEAR(S1) // 年を抽出
=MONTH(T1) // 月を抽出
=DAY(U1) // 日を抽出
WEEKDAY(曜日番号)
=WEEKDAY(V1) // 曜日番号(1:日曜〜7:土曜)
=WEEKDAY(W1, 2) // 月曜始まり(1:月曜〜7:日曜)
日付計算
DATEDIF(期間計算)
基本構文
=DATEDIF(開始日, 終了日, 単位)
使用例
=DATEDIF(X1, Y1, "D") // 日数差
=DATEDIF(X1, Y1, "M") // 月数差
=DATEDIF(X1, Y1, "Y") // 年数差
実務での活用
// 年齢計算
=DATEDIF(生年月日, TODAY(), "Y")
// 勤続年数
=DATEDIF(入社日, TODAY(), "Y") & "年" & DATEDIF(入社日, TODAY(), "YM") & "ヶ月"
WORKDAY・NETWORKDAYS(営業日計算)
WORKDAY(営業日後の日付)
=WORKDAY(Z1, 10) // 10営業日後
=WORKDAY(AA1, -5) // 5営業日前
NETWORKDAYS(営業日数)
=NETWORKDAYS(BB1, CC1) // 期間内の営業日数
データ分析関数

統計関数
MEDIAN・MODE(中央値・最頻値)
=MEDIAN(DD1:DD100) // 中央値
=MODE(EE1:EE100) // 最頻値
STDEV・VAR(標準偏差・分散)
=STDEV(FF1:FF100) // 標準偏差(標本)
=STDEV.P(GG1:GG100) // 標準偏差(母集団)
=VAR(HH1:HH100) // 分散
ランキング関数
RANK・PERCENTRANK
RANK(順位)
=RANK(II1, II:II, 0) // 降順での順位
=RANK(JJ1, JJ:JJ, 1) // 昇順での順位
PERCENTRANK(パーセンタイル順位)
=PERCENTRANK(KK:KK, KK1) // 何パーセンタイルか
条件付き統計
MAXIFS・MINIFS
複数条件での最大値・最小値
=MAXIFS(LL:LL, MM:MM, "東京", NN:NN, ">100")
=MINIFS(OO:OO, PP:PP, "営業部")
論理・情報関数
論理関数
AND・OR・NOT
AND(すべてが真)
=AND(QQ1>50, RR1<100) // 両方の条件を満たす
OR(いずれかが真)
=OR(SS1="A", SS1="B") // AまたはB
NOT(否定)
=NOT(TT1="") // 空白でない
エラー処理関数
IFERROR・IFNA
IFERROR(エラー時の代替値)
=IFERROR(UU1/VV1, 0) // ゼロ除算エラーを0に
=IFERROR(VLOOKUP(WW1, 表, 2, FALSE), "未登録")
IFNA(#N/Aエラー専用)
=IFNA(VLOOKUP(XX1, 表, 2, FALSE), "該当なし")
情報関数
ISBLANK・ISNUMBER・ISTEXT
=ISBLANK(YY1) // 空白かどうか
=ISNUMBER(ZZ1) // 数値かどうか
=ISTEXT(AAA1) // 文字列かどうか
実務での関数活用例
売上管理表での活用
基本的な売上集計
月次売上合計
=SUMIF(日付列, ">=2023/7/1", 売上列) - SUMIF(日付列, ">=2023/8/1", 売上列)
部門別売上
=SUMIF(部門列, "営業部", 売上列)
達成率計算
=IF(実績/目標>=1, "達成", "未達成") & "(" & TEXT(実績/目標, "0%") & ")"
顧客管理での活用
顧客分類
RFM分析の基本
// 最終購入日からの経過日数
=TODAY()-最終購入日
// 購入頻度ランク
=IF(購入回数>=10, "A", IF(購入回数>=5, "B", "C"))
// 累計購入金額ランク
=IF(累計金額>=100000, "プレミアム", IF(累計金額>=50000, "ゴールド", "一般"))
年齢層分析
// 年代分類
=IF(年齢>=60, "60代以上", IF(年齢>=50, "50代", IF(年齢>=40, "40代", IF(年齢>=30, "30代", IF(年齢>=20, "20代", "20代未満")))))
在庫管理での活用
発注点管理
// 発注要否判定
=IF(現在庫<=発注点, "発注必要", "在庫充分")
// 発注推奨数量
=IF(現在庫<=発注点, 最大在庫-現在庫, 0)
// 在庫回転日数
=現在庫/(過去30日売上/30)
勤怠管理での活用
労働時間計算
// 実労働時間(休憩時間除く)
=MAX(0, (退社時刻-出社時刻)*24-1)
// 残業時間
=MAX(0, 実労働時間-8)
// 深夜労働時間(22時以降)
=MAX(0, MIN(退社時刻, TIME(5,0,0)+1)-MAX(出社時刻, TIME(22,0,0)))*24
関数の組み合わせテクニック

ネスト関数(入れ子構造)
複雑な条件分岐
5段階評価システム
=IF(点数>=90, "S", IF(点数>=80, "A", IF(点数>=70, "B", IF(点数>=60, "C", "D"))))
売上評価とボーナス計算
=IF(売上>=1000000, 売上*0.1, IF(売上>=500000, 売上*0.05, IF(売上>=200000, 売上*0.03, 0)))
配列数式の活用
SUMPRODUCT(配列の積の合計)
複雑な条件での集計
=SUMPRODUCT((部門="営業")*(年度=2023)*売上)
文字列カウント
=SUMPRODUCT(--(LEFT(商品名,2)="AB"))
エラー処理の連鎖
複数の検索を試行
=IFERROR(
VLOOKUP(検索値, 表1, 2, FALSE),
IFERROR(
VLOOKUP(検索値, 表2, 2, FALSE),
"該当なし"
)
)
関数使用時の注意点とコツ
パフォーマンス最適化
重い関数の対策
VLOOKUP の最適化
- 検索範囲を必要最小限に
- 完全一致検索(FALSE)を使用
- INDEX-MATCH の検討
配列数式の使用制限
- 大量データでは処理が重くなる
- 必要な範囲のみに適用
- 可能な限り通常の関数で代替
エラーの予防
よくあるエラーと対策
#DIV/0!(ゼロ除算エラー)
// 悪い例
=A1/B1
// 良い例
=IF(B1=0, "", A1/B1)
=IFERROR(A1/B1, 0)
#N/A(値が見つからない)
// 悪い例
=VLOOKUP(C1, 表, 2, FALSE)
// 良い例
=IFERROR(VLOOKUP(C1, 表, 2, FALSE), "該当なし")
#REF!(参照エラー)
- 行・列の削除後に発生
- 名前付き範囲の活用で予防
- TABLE関数の使用検討
保守性の向上
名前付き範囲の活用
// 悪い例
=VLOOKUP(D1, Sheet2!$A$1:$C$100, 2, FALSE)
// 良い例(商品マスタという名前を定義)
=VLOOKUP(D1, 商品マスタ, 2, FALSE)
定数の分離
// 悪い例
=IF(E1>=1000000, "A", "B")
// 良い例(閾値をセルに分離)
=IF(E1>=$G$1, "A", "B")
まとめ
学習の進め方
ステップ1:基本関数をマスター
- SUM、AVERAGE、COUNT:計算の基礎
- IF:条件分岐の基本
- VLOOKUP:データ検索の基本
ステップ2:応用関数を習得
- SUMIFS、COUNTIFS:複数条件処理
- IFERROR:エラー処理
- 文字列関数:データ加工
ステップ3:高度な技術を学習
- 配列数式:複雑な計算
- 関数の組み合わせ:複合処理
- パフォーマンス最適化:大量データ処理
関数習得のコツ
- 実際の業務で使ってみる:理論より実践
- エラーを恐れない:試行錯誤で理解深化
- ヘルプ機能を活用:F1キーやオンラインヘルプ
- 他の人の数式を参考にする:学習効率の向上
業務効率化への効果
作業時間の短縮:
- 手動計算の自動化
- 繰り返し作業の排除
- データ集計の高速化
精度の向上:
- 計算ミスの防止
- 一貫した処理ロジック
- エラー処理による安全性
分析力の向上:
- 複雑な条件での集計
- 多角的なデータ分析
- 意思決定支援の強化
コメント