Excel(エクセル)関数一覧:業務で使える頻出関数をまとめて紹介
Excelは、表計算ソフトとして広く利用され、ビジネスシーンにおけるデータ分析、集計、レポート作成に欠かせないツールです。そのExcelの機能を最大限に引き出すのが関数であり、関数を使いこなせるかどうかで、作業効率は大きく変わります。
この記事では、業務で頻繁に使用されるExcel関数を、具体的な使用例とともに網羅的に解説します。初心者から中級者まで、幅広いレベルのユーザーが対象です。それぞれの関数の構文、引数の意味、具体的な使用例を丁寧に解説することで、読者の皆様がExcel関数をより深く理解し、日々の業務に役立てられるようにすることを目指します。
目次
- 基本関数
- SUM:合計
- AVERAGE:平均
- MIN:最小値
- MAX:最大値
- COUNT:数値の個数
- COUNTA:空白以外のセルの個数
- 日付・時刻関数
- TODAY:今日の日付
- NOW:現在の日時
- YEAR:年
- MONTH:月
- DAY:日
- HOUR:時
- MINUTE:分
- SECOND:秒
- DATE:日付を作成
- TIME:時刻を作成
- DATEDIF:日付の差
- 文字列関数
- LEFT:文字列の左側から指定文字数を取り出す
- RIGHT:文字列の右側から指定文字数を取り出す
- MID:文字列の指定位置から指定文字数を取り出す
- LEN:文字列の長さ
- FIND:文字列の位置を検索
- SEARCH:文字列の位置を検索(大文字・小文字区別なし)
- SUBSTITUTE:文字列を置換
- REPLACE:文字列を置換(指定位置から)
- TEXT:表示形式を設定
- CONCATENATE:文字列を連結
- 論理関数
- IF:条件分岐
- AND:論理積
- OR:論理和
- NOT:否定
- TRUE:真
- FALSE:偽
- 検索/行列関数
- VLOOKUP:垂直方向の検索
- HLOOKUP:水平方向の検索
- INDEX:指定された行と列の交点の値を返す
- MATCH:指定された値が範囲内で最初に見つかった位置を返す
- OFFSET:基準セルからの相対位置にあるセルを参照
- CHOOSE:インデックス番号に基づいて値を返す
- 統計関数
- COUNTIF:条件に一致するセルの個数
- SUMIF:条件に一致するセルの合計
- AVERAGEIF:条件に一致するセルの平均
- COUNTIFS:複数条件に一致するセルの個数
- SUMIFS:複数条件に一致するセルの合計
- AVERAGEIFS:複数条件に一致するセルの平均
- RANK:順位
- 財務関数
- PMT:ローンの月々の支払い額
- PV:投資の現在価値
- FV:投資の将来価値
- RATE:利率
- NPER:支払期間
- 応用例:複数の関数を組み合わせた活用
- VLOOKUPとIFを組み合わせる
- SUMIFとYEARを組み合わせる
- INDEXとMATCHを組み合わせる
1. 基本関数
基本関数は、Excelを使う上で最も基礎となる関数群です。これらの関数は、数値の計算やデータの集計、個数のカウントなど、様々な処理を行う上で不可欠です。
-
SUM:合計
- 構文:
SUM(数値1, [数値2], ...)
- 引数:
数値1, [数値2], ...
: 合計したい数値、セル参照、または範囲。
- 説明: 指定された数値、セル参照、または範囲内の数値の合計を計算します。
- 使用例:
=SUM(A1:A10)
: セルA1からA10までの数値の合計を計算します。=SUM(10, 20, 30)
: 10、20、30の合計である60を返します。=SUM(A1:A5, C1:C5)
: セルA1からA5までの範囲と、セルC1からC5までの範囲の数値の合計を計算します。
- 構文:
-
AVERAGE:平均
- 構文:
AVERAGE(数値1, [数値2], ...)
- 引数:
数値1, [数値2], ...
: 平均を計算したい数値、セル参照、または範囲。
- 説明: 指定された数値、セル参照、または範囲内の数値の平均を計算します。空白セルは無視されます。
- 使用例:
=AVERAGE(B1:B10)
: セルB1からB10までの数値の平均を計算します。=AVERAGE(20, 30, 40)
: 20、30、40の平均である30を返します。=AVERAGE(B1:B5, D1:D5)
: セルB1からB5までの範囲と、セルD1からD5までの範囲の数値の平均を計算します。
- 構文:
-
MIN:最小値
- 構文:
MIN(数値1, [数値2], ...)
- 引数:
数値1, [数値2], ...
: 最小値を検索したい数値、セル参照、または範囲。
- 説明: 指定された数値、セル参照、または範囲内の数値の中から最小値を返します。空白セルは無視されます。
- 使用例:
=MIN(C1:C10)
: セルC1からC10までの数値の中から最小値を検索します。=MIN(5, 10, 15, 2)
: 5、10、15、2の中から最小値である2を返します。
- 構文:
-
MAX:最大値
- 構文:
MAX(数値1, [数値2], ...)
- 引数:
数値1, [数値2], ...
: 最大値を検索したい数値、セル参照、または範囲。
- 説明: 指定された数値、セル参照、または範囲内の数値の中から最大値を返します。空白セルは無視されます。
- 使用例:
=MAX(D1:D10)
: セルD1からD10までの数値の中から最大値を検索します。=MAX(5, 10, 15, 2)
: 5、10、15、2の中から最大値である15を返します。
- 構文:
-
COUNT:数値の個数
- 構文:
COUNT(値1, [値2], ...)
- 引数:
値1, [値2], ...
: 数値の個数を数えたいセル範囲または値。
- 説明: 指定されたセル範囲または値の中に含まれる数値の個数を返します。空白セル、文字列、論理値は無視されます。
- 使用例:
=COUNT(E1:E10)
: セルE1からE10までの範囲に含まれる数値の個数を数えます。=COUNT(1, 2, "a", 4, "")
: 1, 2, 4の3つを数値としてカウントし、3を返します(”a”は文字列、””は空白なのでカウントされません)。
- 構文:
-
COUNTA:空白以外のセルの個数
- 構文:
COUNTA(値1, [値2], ...)
- 引数:
値1, [値2], ...
: 個数を数えたいセル範囲または値。
- 説明: 指定されたセル範囲または値の中に含まれる空白以外のセルの個数を返します。数値、文字列、論理値など、何らかのデータが入っているセルをカウントします。
- 使用例:
=COUNTA(F1:F10)
: セルF1からF10までの範囲に含まれる空白以外のセルの個数を数えます。=COUNTA(1, 2, "a", 4, "")
: 1, 2, “a”, 4の4つをカウントし、4を返します(””は空白なのでカウントされません)。
- 構文:
2. 日付・時刻関数
日付・時刻関数は、日付や時刻のデータを操作するための関数群です。日付の計算、日付の表示形式の変更、日付の一部(年、月、日など)の抽出などに利用できます。
-
TODAY:今日の日付
- 構文:
TODAY()
- 引数: なし
- 説明: 現在の日付を返します。
- 使用例:
=TODAY()
: 今日の日付をyyyy/mm/ddの形式で表示します(例:2023/10/27)。
- 構文:
-
NOW:現在の日時
- 構文:
NOW()
- 引数: なし
- 説明: 現在の日時を返します。
- 使用例:
=NOW()
: 現在の日時をyyyy/mm/dd hh:mmの形式で表示します(例:2023/10/27 10:30)。
- 構文:
-
YEAR:年
- 構文:
YEAR(シリアル値)
- 引数:
シリアル値
: 日付データが入力されたセル、または日付を表すシリアル値。
- 説明: 指定された日付の年から年を表す数値を返します。
- 使用例:
=YEAR(A1)
: セルA1に2023/10/27と入力されている場合、2023を返します。
- 構文:
-
MONTH:月
- 構文:
MONTH(シリアル値)
- 引数:
シリアル値
: 日付データが入力されたセル、または日付を表すシリアル値。
- 説明: 指定された日付の月から月を表す数値を返します。
- 使用例:
=MONTH(A1)
: セルA1に2023/10/27と入力されている場合、10を返します。
- 構文:
-
DAY:日
- 構文:
DAY(シリアル値)
- 引数:
シリアル値
: 日付データが入力されたセル、または日付を表すシリアル値。
- 説明: 指定された日付の日から日を表す数値を返します。
- 使用例:
=DAY(A1)
: セルA1に2023/10/27と入力されている場合、27を返します。
- 構文:
-
HOUR:時
- 構文:
HOUR(シリアル値)
- 引数:
シリアル値
: 時刻データが入力されたセル、または時刻を表すシリアル値。
- 説明: 指定された時刻の時から時を表す数値を返します。
- 使用例:
=HOUR(A1)
: セルA1に10:30:00と入力されている場合、10を返します。
- 構文:
-
MINUTE:分
- 構文:
MINUTE(シリアル値)
- 引数:
シリアル値
: 時刻データが入力されたセル、または時刻を表すシリアル値。
- 説明: 指定された時刻の分から分を表す数値を返します。
- 使用例:
=MINUTE(A1)
: セルA1に10:30:00と入力されている場合、30を返します。
- 構文:
-
SECOND:秒
- 構文:
SECOND(シリアル値)
- 引数:
シリアル値
: 時刻データが入力されたセル、または時刻を表すシリアル値。
- 説明: 指定された時刻の秒から秒を表す数値を返します。
- 使用例:
=SECOND(A1)
: セルA1に10:30:45と入力されている場合、45を返します。
- 構文:
-
DATE:日付を作成
- 構文:
DATE(年, 月, 日)
- 引数:
年
: 年を表す数値。月
: 月を表す数値。日
: 日を表す数値。
- 説明: 指定された年、月、日に基づいて日付を表すシリアル値を返します。
- 使用例:
=DATE(2023, 10, 27)
: 2023年10月27日を表すシリアル値を返します。表示形式を日付に変更すると、2023/10/27と表示されます。
- 構文:
-
TIME:時刻を作成
- 構文:
TIME(時, 分, 秒)
- 引数:
時
: 時を表す数値。分
: 分を表す数値。秒
: 秒を表す数値。
- 説明: 指定された時、分、秒に基づいて時刻を表すシリアル値を返します。
- 使用例:
=TIME(10, 30, 0)
: 10時30分0秒を表すシリアル値を返します。表示形式を時刻に変更すると、10:30:00と表示されます。
- 構文:
-
DATEDIF:日付の差
- 構文:
DATEDIF(開始日, 終了日, 単位)
- 引数:
開始日
: 開始日を表す日付データまたはシリアル値。終了日
: 終了日を表す日付データまたはシリアル値。単位
: 日付の差をどのような単位で表示するかを指定する文字列。”Y” (年), “M” (月), “D” (日), “YM” (年の差を無視した月数), “YD” (年の差を無視した日数), “MD” (月の差を無視した日数)。
- 説明: 開始日から終了日までの日付の差を、指定された単位で計算します。
- 使用例:
=DATEDIF(A1, B1, "Y")
: セルA1に2020/01/01、セルB1に2023/10/27と入力されている場合、3を返します(年単位の差)。=DATEDIF(A1, B1, "M")
: セルA1に2020/01/01、セルB1に2023/10/27と入力されている場合、45を返します(月単位の差)。=DATEDIF(A1, B1, "D")
: セルA1に2020/01/01、セルB1に2023/10/27と入力されている場合、1395を返します(日単位の差)。
- 構文:
3. 文字列関数
文字列関数は、文字列データを操作するための関数群です。文字列の抽出、置換、連結、長さを調べるなど、様々な処理を行うことができます。
-
LEFT:文字列の左側から指定文字数を取り出す
- 構文:
LEFT(文字列, 文字数)
- 引数:
文字列
: 取り出す対象となる文字列データが入力されたセル、または文字列。文字数
: 取り出す文字数。
- 説明: 文字列の左側から指定された文字数分の文字を取り出します。
- 使用例:
=LEFT(A1, 5)
: セルA1に”東京都新宿区”と入力されている場合、”東京都”を返します。
- 構文:
-
RIGHT:文字列の右側から指定文字数を取り出す
- 構文:
RIGHT(文字列, 文字数)
- 引数:
文字列
: 取り出す対象となる文字列データが入力されたセル、または文字列。文字数
: 取り出す文字数。
- 説明: 文字列の右側から指定された文字数分の文字を取り出します。
- 使用例:
=RIGHT(A1, 3)
: セルA1に”東京都新宿区”と入力されている場合、”新宿区”を返します。
- 構文:
-
MID:文字列の指定位置から指定文字数を取り出す
- 構文:
MID(文字列, 開始位置, 文字数)
- 引数:
文字列
: 取り出す対象となる文字列データが入力されたセル、または文字列。開始位置
: 取り出しを開始する位置。1から始まる。文字数
: 取り出す文字数。
- 説明: 文字列の指定された位置から指定された文字数分の文字を取り出します。
- 使用例:
=MID(A1, 4, 2)
: セルA1に”東京都新宿区”と入力されている場合、”都新”を返します。
- 構文:
-
LEN:文字列の長さ
- 構文:
LEN(文字列)
- 引数:
文字列
: 長さを調べたい文字列データが入力されたセル、または文字列。
- 説明: 文字列の長さを文字数で返します。
- 使用例:
=LEN(A1)
: セルA1に”東京都新宿区”と入力されている場合、7を返します。
- 構文:
-
FIND:文字列の位置を検索
- 構文:
FIND(検索文字列, 対象, [開始位置])
- 引数:
検索文字列
: 検索する文字列。対象
: 検索対象の文字列。[開始位置]
: 検索を開始する位置(省略可能)。
- 説明: 対象文字列の中で、検索文字列が最初に見つかった位置を返します。大文字と小文字を区別します。見つからない場合は#VALUE!エラーを返します。
- 使用例:
=FIND("新宿", A1)
: セルA1に”東京都新宿区”と入力されている場合、4を返します。=FIND("しんじゅく", A1)
: セルA1に”東京都新宿区”と入力されている場合、#VALUE!エラーを返します(大文字と小文字を区別するため)。
- 構文:
-
SEARCH:文字列の位置を検索(大文字・小文字区別なし)
- 構文:
SEARCH(検索文字列, 対象, [開始位置])
- 引数:
検索文字列
: 検索する文字列。対象
: 検索対象の文字列。[開始位置]
: 検索を開始する位置(省略可能)。
- 説明: 対象文字列の中で、検索文字列が最初に見つかった位置を返します。大文字と小文字を区別しません。ワイルドカード文字(*、?)を使用できます。見つからない場合は#VALUE!エラーを返します。
- 使用例:
=SEARCH("新宿", A1)
: セルA1に”東京都新宿区”と入力されている場合、4を返します。=SEARCH("しんじゅく", A1)
: セルA1に”東京都新宿区”と入力されている場合、4を返します(大文字と小文字を区別しないため)。
- 構文:
-
SUBSTITUTE:文字列を置換
- 構文:
SUBSTITUTE(文字列, 検索文字列, 置換文字列, [インスタンス])
- 引数:
文字列
: 置換対象の文字列。検索文字列
: 置換される文字列。置換文字列
: 検索文字列と置き換わる文字列。[インスタンス]
: 何番目の検索文字列を置換するかを指定(省略可能)。省略すると、すべての検索文字列が置換されます。
- 説明: 文字列の中の指定された文字列を別の文字列で置換します。
- 使用例:
=SUBSTITUTE(A1, "新宿", "渋谷")
: セルA1に”東京都新宿区”と入力されている場合、”東京都渋谷区”を返します。=SUBSTITUTE(A1, "a", "b", 2)
: セルA1に”banana”と入力されている場合、”bannna”を返します(2番目の”a”を”b”に置換)。
- 構文:
-
REPLACE:文字列を置換(指定位置から)
- 構文:
REPLACE(文字列, 開始位置, 文字数, 置換文字列)
- 引数:
文字列
: 置換対象の文字列。開始位置
: 置換を開始する位置。文字数
: 置換する文字数。置換文字列
: 置き換わる文字列。
- 説明: 文字列の指定された位置から指定された文字数分の文字を別の文字列で置換します。
- 使用例:
=REPLACE(A1, 4, 2, "渋谷")
: セルA1に”東京都新宿区”と入力されている場合、”東京都渋谷区”を返します。
- 構文:
-
TEXT:表示形式を設定
- 構文:
TEXT(値, 表示形式)
- 引数:
値
: 表示形式を設定する値。表示形式
: 適用する表示形式を表す文字列。
- 説明: 数値を指定された表示形式の文字列に変換します。
- 使用例:
=TEXT(A1, "yyyy/mm/dd")
: セルA1に2023/10/27と入力されている場合、”2023/10/27″という文字列を返します。=TEXT(B1, "#,##0")
: セルB1に1234567と入力されている場合、”1,234,567″という文字列を返します。
- 構文:
-
CONCATENATE:文字列を連結
- 構文:
CONCATENATE(文字列1, [文字列2], ...)
- 引数:
文字列1, [文字列2], ...
: 連結する文字列。
- 説明: 複数の文字列を連結して一つの文字列にします。
&
演算子でも同様の処理が可能です。 - 使用例:
=CONCATENATE(A1, " ", B1)
: セルA1に”東京都”、セルB1に”新宿区”と入力されている場合、”東京都 新宿区”を返します。=A1 & " " & B1
: 上記と同じ結果になります。
- 構文:
4. 論理関数
論理関数は、条件に基づいて異なる処理を実行するための関数群です。条件分岐、複数の条件の組み合わせ、条件の否定などに利用できます。
-
IF:条件分岐
- 構文:
IF(論理式, 真の場合, 偽の場合)
- 引数:
論理式
: 評価する条件式。真の場合
: 論理式が真の場合に返す値または実行する処理。偽の場合
: 論理式が偽の場合に返す値または実行する処理。
- 説明: 論理式の評価結果に基づいて、異なる値または処理を実行します。
- 使用例:
=IF(A1>10, "合格", "不合格")
: セルA1の値が10より大きい場合、”合格”を返し、そうでない場合は”不合格”を返します。=IF(B1="A", 1, 0)
: セルB1の値が”A”の場合、1を返し、そうでない場合は0を返します。
- 構文:
-
AND:論理積
- 構文:
AND(論理式1, [論理式2], ...)
- 引数:
論理式1, [論理式2], ...
: 評価する条件式。
- 説明: すべての論理式が真の場合にTRUEを返し、一つでも偽の場合にFALSEを返します。
- 使用例:
=AND(A1>10, B1<20)
: セルA1の値が10より大きく、かつセルB1の値が20より小さい場合にTRUEを返し、そうでない場合はFALSEを返します。=IF(AND(A1="A", B1="B"), "両方一致", "一致しない")
: セルA1の値が”A”であり、かつセルB1の値が”B”の場合に”両方一致”を返し、そうでない場合は”一致しない”を返します。
- 構文:
-
OR:論理和
- 構文:
OR(論理式1, [論理式2], ...)
- 引数:
論理式1, [論理式2], ...
: 評価する条件式。
- 説明: 少なくとも一つの論理式が真の場合にTRUEを返し、すべて偽の場合にFALSEを返します。
- 使用例:
=OR(A1>10, B1<20)
: セルA1の値が10より大きいか、またはセルB1の値が20より小さい場合にTRUEを返し、そうでない場合はFALSEを返します。=IF(OR(A1="A", B1="B"), "いずれか一致", "一致しない")
: セルA1の値が”A”であるか、またはセルB1の値が”B”の場合に”いずれか一致”を返し、そうでない場合は”一致しない”を返します。
- 構文:
-
NOT:否定
- 構文:
NOT(論理式)
- 引数:
論理式
: 評価する条件式。
- 説明: 論理式の真偽を反転させます。論理式がTRUEの場合にFALSEを返し、FALSEの場合にTRUEを返します。
- 使用例:
=NOT(A1>10)
: セルA1の値が10より大きい場合にFALSEを返し、そうでない場合にTRUEを返します。=IF(NOT(A1="A"), "A以外", "A")
: セルA1の値が”A”でない場合に”A以外”を返し、”A”の場合に”A”を返します。
- 構文:
-
TRUE:真
- 構文:
TRUE()
- 引数: なし
- 説明: 論理値のTRUEを返します。
- 使用例:
=IF(A1=1, TRUE(), FALSE())
: セルA1の値が1の場合、TRUEを返し、そうでない場合はFALSEを返します。
- 構文:
-
FALSE:偽
- 構文:
FALSE()
- 引数: なし
- 説明: 論理値のFALSEを返します。
- 使用例:
=IF(A1=1, TRUE(), FALSE())
: セルA1の値が1の場合、TRUEを返し、そうでない場合はFALSEを返します。
- 構文:
5. 検索/行列関数
検索/行列関数は、テーブルやリストから特定のデータを検索したり、行列の操作を行うための関数群です。VLOOKUPやHLOOKUPは特に頻繁に使用されます。
-
VLOOKUP:垂直方向の検索
- 構文:
VLOOKUP(検索値, 範囲, 列番号, [検索方法])
- 引数:
検索値
: 検索する値。範囲
: 検索対象となるテーブル範囲。列番号
: 範囲の中で、検索結果として取り出す値がある列の番号(左から1, 2, 3,…)。[検索方法]
: 検索方法を指定する論理値(省略可能)。TRUE(または省略):近似一致、FALSE:完全一致。
- 説明: 範囲の左端列で検索値を検索し、同じ行にある指定された列番号の値を返します。
- 使用例:
商品ID 商品名 価格 1001 りんご 150 1002 みかん 80 1003 バナナ 120 =VLOOKUP(1002, A1:C3, 2, FALSE)
: 商品IDが1002の商品の商品名(みかん)を返します。=VLOOKUP(1001, A1:C3, 3, FALSE)
: 商品IDが1001の商品の価格(150)を返します。
- 構文:
-
HLOOKUP:水平方向の検索
- 構文:
HLOOKUP(検索値, 範囲, 行番号, [検索方法])
- 引数:
検索値
: 検索する値。範囲
: 検索対象となるテーブル範囲。行番号
: 範囲の中で、検索結果として取り出す値がある行の番号(上から1, 2, 3,…)。[検索方法]
: 検索方法を指定する論理値(省略可能)。TRUE(または省略):近似一致、FALSE:完全一致。
- 説明: 範囲の上端行で検索値を検索し、同じ列にある指定された行番号の値を返します。
- 使用例:
1001 1002 1003 商品名 りんご みかん バナナ 価格 150 80 120 =HLOOKUP(1002, A1:C2, 2, FALSE)
: 商品IDが1002の商品の価格(80)を返します。=HLOOKUP(1003, A1:C2, 1, FALSE)
: 商品IDが1003の商品の商品名(バナナ)を返します。
- 構文:
-
INDEX:指定された行と列の交点の値を返す
- 構文:
INDEX(範囲, 行番号, [列番号])
- 引数:
範囲
: 値を取り出す範囲。行番号
: 値を取り出す行番号。[列番号]
: 値を取り出す列番号(省略可能)。
- 説明: 指定された範囲の中で、指定された行番号と列番号の交点にあるセルの値を返します。
- 使用例:
A B C 1 りんご みかん バナナ 2 150 80 120 =INDEX(A1:C2, 1, 2)
: A1:C2の範囲の1行目、2列目の値(みかん)を返します。=INDEX(A1:C2, 2, 3)
: A1:C2の範囲の2行目、3列目の値(120)を返します。
- 構文:
-
MATCH:指定された値が範囲内で最初に見つかった位置を返す
- 構文:
MATCH(検索値, 範囲, [照合の型])
- 引数:
検索値
: 検索する値。範囲
: 検索対象となる範囲。[照合の型]
: 検索方法を指定する数値(省略可能)。1:検索値以下で最大の値、0:完全一致、-1:検索値以上で最小の値。
- 説明: 指定された範囲の中で、検索値が最初に見つかった位置を数値で返します。
- 使用例:
A 1 りんご 2 みかん 3 バナナ =MATCH("みかん", A1:A3, 0)
: A1:A3の範囲で”みかん”が最初に見つかった位置(2)を返します。
- 構文:
-
OFFSET:基準セルからの相対位置にあるセルを参照
- 構文:
OFFSET(基準, 行数, 列数, [高さ], [幅])
- 引数:
基準
: 基準となるセル。行数
: 基準セルから移動する行数(正:下方向、負:上方向)。列数
: 基準セルから移動する列数(正:右方向、負:左方向)。[高さ]
: 返される参照の高さ(省略可能)。- `
- 構文: