Excel - 数学関数
概要
Excelの数学関数は、数値データの計算や分析において基本的かつ重要な機能である。
四則演算、合計、平均、カウント、丸め処理等の基本的な計算から、三角関数、対数関数、べき乗計算等の高度な数学関数まで、幅広い計算機能を提供している。
主な機能として、データの集計 (SUM、AVERAGE系)、条件付き集計 (SUMIF、COUNTIF系)、丸め処理 (ROUND系)、三角関数 (SIN、COS系)、その他の数学関数 (POWER、SQRT、MOD等)がある。
これらの関数は、財務計算、統計分析、工学計算、データ集計等、様々な業務シーンで活用される。
基本的な四則演算
Excelでは、セル内で四則演算を直接記述できる。
数式は必ず = から始め、以下に示す演算子を使用する。
- +
- 加算
- -
- 減算
- *
- 乗算
- /
- 除算
- ^
- べき乗
使用例
- =A1+B1
- A1とB1の合計
- =A1-B1
- A1からB1を減算
- =A1*B1
- A1とB1の積
- =A1/B1
- A1をB1で除算
- =A1^2
- A1の2乗
演算の優先順位
- 括弧 ()
- 冪乗 ^
- 乗算 * と 除算 /
- 加算 + と 減算 -
例えば、=(A1+B1)*C1 のように括弧を使用して計算順序を制御できる。
合計関数 (SUM系)
SUM関数
指定した範囲の数値を合計する最も基本的な関数である。
構文:
=SUM(数値1, [数値2], ...)
使用例:
- =SUM(A1:A10)
- A1からA10までの合計
- =SUM(A1:A10, C1:C10)
- 複数範囲の合計
- =SUM(A1, A3, A5)
- 個別セルの合計
※注意
- 文字列や空白セルは無視される
- エラー値が含まれる場合はエラーを返す
SUMIF関数
条件に一致するセルのみを合計する関数である。
構文:
=SUMIF(範囲, 条件, [合計範囲])
使用例:
- =SUMIF(A1:A10, ">=100", B1:B10)
- A列が100以上の行のB列を合計
- =SUMIF(A1:A10, "東京", B1:B10)
- A列が「東京」の行のB列を合計
- =SUMIF(B1:B10, ">0")
- B列の正の数のみを合計
SUMIFS関数
複数の条件に一致するセルを合計する関数である。
構文:
=SUMIFS(合計範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
使用例:
- =SUMIFS(C1:C10, A1:A10, "東京", B1:B10, ">=100")
- A列が「東京」かつB列が100以上の行のC列を合計
注意
- SUMIFと引数の順序が異なる。(合計範囲が最初)
- 最大127組の条件を指定可能。
SUBTOTAL関数
フィルタ適用時に非表示行を除外して集計する関数である。
構文:
=SUBTOTAL(集計方法, 範囲1, [範囲2], ...)
集計方法の番号:
- 1 または 101
- AVERAGE (平均)
- 2 または 102
- COUNT (数値のカウント)
- 3 または 103
- COUNTA (空白以外のカウント)
- 4 または 104
- MAX (最大値)
- 5 または 105
- MIN (最小値)
- 9 または 109
- SUM (合計)
- 番号100台は手動で非表示にした行も除外する。
使用例:
- =SUBTOTAL(9, B2:B100)
- B列の合計 (フィルタ時は表示行のみ)
- =SUBTOTAL(109, B2:B100)
- 手動非表示も除外した合計
平均・カウント関数
AVERAGE関数
数値の平均を計算する関数である。
構文:
=AVERAGE(数値1, [数値2], ...)
使用例:
- =AVERAGE(A1:A10)
- A1からA10までの平均
- =AVERAGE(A1:A10, C1:C10)
- 複数範囲の平均
※注意
- 空白セルや文字列は無視される。
- 0は計算に含まれる。
AVERAGEIF / AVERAGEIFS関数
条件に一致するセルの平均を計算する関数である。
構文:
=AVERAGEIF(範囲, 条件, [平均範囲]) =AVERAGEIFS(平均範囲, 条件範囲1, 条件1, [条件範囲2, 条件2], ...)
使用例:
- =AVERAGEIF(A1:A10, ">=60")
- 60以上の値の平均
- =AVERAGEIFS(C1:C10, A1:A10, "東京", B1:B10, ">=100")
- 複数条件での平均
COUNT / COUNTA関数
セルの個数をカウントする関数である。
構文:
=COUNT(値1, [値2], ...) =COUNTA(値1, [値2], ...)
COUNT関数 / COUNTA関数の違い:
- COUNT
- 数値が入力されているセルをカウント
- COUNTA
- 空白以外のセルをカウント (文字列も含む)
使用例:
- =COUNT(A1:A10)
- A1からA10の数値セル数
- =COUNTA(A1:A10)
- A1からA10の空白以外のセル数
COUNTIF / COUNTIFS関数
条件に一致するセルの個数をカウントする関数である。
構文:
=COUNTIF(範囲, 条件) =COUNTIFS(条件範囲1, 条件1, [条件範囲2, 条件2], ...)
使用例:
- =COUNTIF(A1:A10, ">=60")
- 60以上のセル数
- =COUNTIF(A1:A10, "東京")
- 「東京」と一致するセル数
- =COUNTIFS(A1:A10, "東京", B1:B10, ">=100")
- 複数条件でのカウント
MAX / MIN関数
範囲内の最大値・最小値を取得する関数である。
構文:
=MAX(数値1, [数値2], ...) =MIN(数値1, [数値2], ...)
使用例:
- =MAX(A1:A10)
- A1からA10の最大値
- =MIN(A1:A10)
- A1からA10の最小値
丸め処理関数
ROUND関数
指定した桁数で四捨五入する関数である。
構文:
=ROUND(数値, 桁数)
桁数の指定:
- 正の数
- 小数点以下の桁数
- 0
- 整数に丸める
- 負の数
- 小数点より左側の桁数
使用例:
- =ROUND(123.456, 2)
- 123.46 (小数第2位まで)
- =ROUND(123.456, 0)
- 123 (整数に丸める)
- =ROUND(1234.56, -2)
- 1200 (百の位に丸める)
ROUNDUP関数
指定した桁数で切り上げる関数である。
構文:
=ROUNDUP(数値, 桁数)
使用例:
- =ROUNDUP(123.456, 2)
- 123.46
- =ROUNDUP(123.001, 0)
- 124
- =ROUNDUP(123.456, -2)
- 200
ROUNDDOWN関数
指定した桁数で切り捨てる関数である。
構文:
=ROUNDDOWN(数値, 桁数)
使用例:
- =ROUNDDOWN(123.456, 2)
- 123.45
- =ROUNDDOWN(123.999, 0)
- 123
- =ROUNDDOWN(1234.56, -2)
- 1200
INT関数
小数点以下を切り捨てて整数部分を返す関数である。
構文:
=INT(数値)
使用例:
- =INT(123.456)
- 123
- =INT(-123.456)
- -124 (負の数は小さい方に丸める)
※注意
- 負の数の場合、ROUNDDOWN(数値, 0)とは結果が異なる。
TRUNC関数
指定した桁数で数値を切り捨てる関数である。
構文:
=TRUNC(数値, [桁数])
使用例:
- =TRUNC(123.456, 2)
- 123.45
- =TRUNC(123.456)
- 123 (桁数省略時は整数に)
- =TRUNC(-123.456)
- -123 (負の数も0に近い方へ切り捨て)
INT関数との違いは、負の数の扱いである。
- TRUNC(-123.456)
- -123
- INT(-123.456)
- -124
CEILING / FLOOR関数
指定した基準値の倍数に丸める関数である。
構文:
=CEILING(数値, 基準値) =FLOOR(数値, 基準値)
使用例:
- =CEILING(123, 10)
- 130 (10の倍数に切り上げ)
- =FLOOR(123, 10)
- 120 (10の倍数に切り捨て)
- =CEILING(1.23, 0.5)
- 1.5 (0.5の倍数に切り上げ)
応用例:
- 時間を15分単位に丸める
- =CEILING(A1, "0:15")
- 価格を100円単位に切り上げ
- =CEILING(A1, 100)
MROUND関数
指定した倍数の最も近い値に丸める関数である。
構文:
=MROUND(数値, 倍数)
使用例:
- =MROUND(123, 10)
- 120 (10の倍数に四捨五入)
- =MROUND(127, 10)
- 130
- =MROUND(1.23, 0.5)
- 1.0 (0.5の倍数に四捨五入)
三角関数
SIN / COS / TAN関数
基本的な三角関数を計算する関数である。
構文:
=SIN(角度) =COS(角度) =TAN(角度)
※注意
- 角度の単位は、ラジアンで指定する必要がある。
- 度数法の角度を使用する場合は、
RADIANS関数で変換する。
使用例:
- =SIN(RADIANS(30))
- 0.5 (30度のサイン)
- =COS(RADIANS(60))
- 0.5 (60度のコサイン)
- =TAN(RADIANS(45))
- 1 (45度のタンジェント)
ASIN / ACOS / ATAN関数
逆三角関数 (アークサイン、アークコサイン、アークタンジェント) を計算する関数である。
構文:
=ASIN(数値) =ACOS(数値) =ATAN(数値)
※注意
- 結果はラジアンで返される。
- 度数法に変換する場合は、
DEGREES関数を使用する。
使用例:
- =DEGREES(ASIN(0.5))
- 30 (sin(0.5)は、30度)
- =DEGREES(ACOS(0.5))
- 60
- =DEGREES(ATAN(1))
- 45
RADIANS / DEGREES関数
角度の単位を変換する関数である。
構文:
度数法からラジアンへ変換 =RADIANS(角度) ラジアンから度数法へ変換 =DEGREES(角度)
使用例:
- =RADIANS(180)
- 3.14159... (π)
- =DEGREES(PI())
- 180
PI関数
円周率πの値を返す関数である。
構文:
=PI()
使用例:
- =PI()
- 3.14159265358979...
- =2*PI()*A1
- 円周の計算 (A1セルに半径を入力)
- =PI()*A1^2
- 円の面積の計算 (A1セルに半径を入力)
べき乗・対数・指数関数
POWER関数
冪乗 (累乗) を計算する関数である。
構文:
=POWER(数値, 指数)
使用例:
- =POWER(2, 3)
- 8 (2の3乗)
- =POWER(10, -2)
- 0.01 (10の-2乗)
- =POWER(4, 0.5)
- 2 (4の平方根)
※注意
=A1^2 のように演算子 ^ でも同じ計算が可能である。
SQRT関数
平方根を計算する関数である。
構文:
=SQRT(数値)
使用例:
- =SQRT(16)
- 4
- =SQRT(2)
- 1.414...
※注意
- 負の数を指定するとエラー (#NUM!) になる。
- これは、
=POWER(A1, 0.5)と同じ結果である。
EXP関数
自然対数の底e (ネイピア数) の冪乗を計算する関数である。
構文:
=EXP(数値)
使用例:
- =EXP(1)
- 2.718281... (eの値)
- =EXP(2)
- 7.389... (e2)
LN / LOG / LOG10関数
対数を計算する関数である。
構文:
自然対数 (底e) =LN(数値) 常用対数 (底10) =LOG10(数値) 任意の底の対数 =LOG(数値, [底])
使用例:
- =LN(EXP(1))
- 1
- =LOG10(100)
- 2
- =LOG(8, 2)
- 3
絶対値・符号・剰余関数
ABS関数
絶対値を返す関数である。
構文:
=ABS(数値)
使用例:
- =ABS(-5)
- 5
- =ABS(5)
- 5
- =ABS(A1-B1)
- 差の絶対値
SIGN関数
数値の符号を判定する関数である。
構文:
=SIGN(数値)
戻り値:
- 1
- 正の数
- 0
- ゼロ
- -1
- 負の数
使用例:
- =SIGN(10)
- 1
- =SIGN(0)
- 0
- =SIGN(-10)
- -1
MOD関数
除算の剰余(余り)を返す関数である。
構文:
=MOD(数値, 除数)
使用例:
- =MOD(10, 3)
- 1 (10÷3の余り)
- =MOD(15, 4)
- 3 (15÷4の余り)
応用例:
- 偶数判定
TRUEなら偶数である。- =MOD(A1, 2)=0
- N行おきに色を付ける条件付き書式
- =MOD(ROW(), 2)=0
その他の数学関数
PRODUCT関数
指定した数値の積 (乗算の結果) を計算する関数である。
構文:
=PRODUCT(数値1, [数値2], ...)
使用例:
- =PRODUCT(2, 3, 4)
- 24 (2×3×4)
- =PRODUCT(A1:A5)
- A1からA5までの積
QUOTIENT関数
除算の商の整数部分を返す関数である。
構文:
=QUOTIENT(分子, 分母)
使用例:
- =QUOTIENT(10, 3)
- 3 (10÷3の商)
- =QUOTIENT(15, 4)
- 3 (15÷4の商)
関連:
- MOD関数と組み合わせて、商と余りを両方求めることができる。
GCD / LCM関数
最大公約数と最小公倍数を求める関数である。
構文:
最大公約数 =GCD(数値1, [数値2], ...) 最小公倍数 =LCM(数値1, [数値2], ...)
使用例:
- =GCD(12, 18)
- 6 (12と18の最大公約数)
- =LCM(12, 18)
- 36 (12と18の最小公倍数)
- =GCD(24, 36, 48)
- 12 (複数の数値も可能)
FACT関数
階乗を計算する関数である。
構文:
=FACT(数値)
使用例:
- =FACT(5)
- 120 (5! = 5×4×3×2×1)
- =FACT(0)
- 1 (0! = 1と定義)
PERMUT / COMBIN関数
組み合わせと順列の数を計算する関数である。
構文:
順列(nPr) =PERMUT(総数, 抜き取り数) 組み合わせ(nCr) =COMBIN(総数, 抜き取り数)
使用例:
- =PERMUT(5, 2)
- 20 (5個から2個選ぶ順列)
- =COMBIN(5, 2)
- 10 (5個から2個選ぶ組み合わせ)
PERMUT関数とCOMBIN関数の違い:
- PERMUT
- 順序を考慮する。(AB ≠ BA)
- COMBIN
- 順序を考慮しない。(AB = BA)
SUMPRODUCT関数
配列の対応する要素の積を合計する関数である。
構文:
=SUMPRODUCT(配列1, [配列2], ...)
使用例:
- =SUMPRODUCT(A1:A5, B1:B5)
- (A1×B1) + (A2×B2) + ... + (A5×B5)
応用例:
- 単価×数量の合計を1度に計算する場合に使用する。
- 複雑な条件付き集計にも使用可能。
実用的な使用例
消費税込み価格の計算
消費税を含めた価格を計算し、適切に丸める例。
=ROUNDDOWN(A1*1.1, 0)
A1の価格に10%の消費税を加算し、小数点以下を切り捨てる。
成績処理
テストの合計点と平均点を計算する例。
合計:
=SUM(B2:E2)
平均:
=AVERAGE(B2:E2)
または
=ROUND(AVERAGE(B2:E2), 1)
小数第1位まで表示する場合は、ROUND関数を併用する。
条件付き集計
特定の条件を満たすデータのみを集計する例。
売上が10万円以上の合計:
=SUMIF(B2:B100, ">=100000")
東京支店の売上合計:
=SUMIF(A2:A100, "東京", B2:B100)
東京支店かつ10万円以上の売上合計:
=SUMIFS(C2:C100, A2:A100, "東京", B2:B100, ">=100000")
割引計算
購入金額に応じた割引率を適用する例。
10%引き後の価格(端数切り捨て):
=ROUNDDOWN(A1*0.9, 0)
1000円単位に切り上げ:
=CEILING(A1, 1000)
エラー回避
除算でゼロ除算エラーを回避する例。
=IF(B1=0, 0, A1/B1)
または
=IFERROR(A1/B1, 0)
B1がゼロの場合にエラーではなく0を表示する。
偶数・奇数の判定
MOD関数を使って偶数・奇数を判定する例。
=IF(MOD(A1, 2)=0, "偶数", "奇数")
時間の丸め処理
勤務時間を15分単位に切り上げる例。
=CEILING(A1, "0:15")
A1に時刻データが入っている場合、15分単位に切り上げられる。