Home 仕様あるいは不具合
加算,減算,乗算,除算の四則演算は,2つの数に演算を行って1つの数を得るもので,二項演算に属する。 二項演算を行うための記号\(\verb|+|\),\(\verb|-|\),\(\verb|*|\),\(\verb|/|\)を二項演算子という。 正の数を負の数に(負の数を正の数に)変える演算は単項演算に属し,単項演算を行うための記号\(\verb|-|\)を単項演算子という。 Excelの算術演算子には次のものがある。
順位 | 機能 | 演算子 | 種類 |
1. | 符号反転 | \(\verb|-|\) | 単項演算子(前置) |
2. | 百分率 | \(\verb|%|\) | 単項演算子(後置) |
3. | 累乗 | \(\verb|^|\) | 二項演算子(中置) |
4. | 乗算 | \(\verb|*|\) | 二項演算子(中置) |
4. | 除算 | \(\verb|/|\) | 二項演算子(中置) |
5. | 加算 | \(\verb|+|\) | 二項演算子(中置) |
5. | 減算 | \(\verb|-|\) | 二項演算子(中置) |
• 括弧\(\verb|()|\)で囲まれた部分の計算は,表に示した優先順位によらず,括弧の部分を先に計算する。
括弧は二重や三重になってもよい。
• 括弧が使われていない部分では,優先順位の高い演算から先に計算する。
• 順位が同じ場合は左から右の順に計算する。
累乗も左から右の順に計算する。
Excelの記述 | 通常の数式の記述 | 計算結果 |
\(\verb|=2^3^2|\) | \((2^3)^2\) | \(\verb|64|\) |
\(\verb|=2^(3^2)|\) | \(2^{3^2}\) | \(\verb|512|\) |
\(\verb|X%|\)は\(\verb|X/100|\)と同等な計算をする。 ただし\(\verb|X/100|\)は除算なので累乗より順位が低いが,\(\verb|X%|\)は累乗より高い順位に設定されている。
たとえば\(\verb|*-|\)のように演算子が連続することは避けるべきだが,\(\verb|-|\)が単項演算子なので\(\verb|=X*-Y|\)がエラーにならない。 また,単項\(\verb|+|\)演算子も使えるようであるが,特別な機能はもたない。
Excelの記述 | 通常の数式の記述 | 計算結果 |
\(\verb|=10*-2|\) | \(10 \times (-2)\) | \(\verb|-20|\) |
\(\verb|=10/-2|\) | \(10 \div (-2)\) | \(\verb|-5|\) |
\(\verb|=10+-2|\) | \(10+(-2)\) | \(\verb|8|\) |
\(\verb|=10--2|\) | \(10-(-2)\) | \(\verb|12|\) |
\(\verb|=10*+2|\) | \(10 \times (+2)\) | \(\verb|20|\) |
\(\verb|=10-+2|\) | \(10-(+2)\) | \(\verb|8|\) |
Excelの演算規則では,単項\(\verb|-|\)演算子の優先順位が不当に高く,累乗よりも高くなっている。 下の表の計算例において,前半2例の\(\verb|-|\)は単項演算子で,累乗より優先順位が高くなっている。 期待どおりの結果が得られない場合がある。 それに対して後半2例の\(\verb|-|\)は二項演算子(減算)で,累乗より優先順位が低い。
Excelの記述 | 通常の数式の記述 | 計算結果 |
\(\verb|=-2^2|\) | \((-2)^2\) | \(\verb|4|\) |
\(\verb|=-2^3|\) | \((-2)^3\) | \(\verb|-8|\) |
\(\verb|=0-2^2|\) | \(0-2^2\) | \(\verb|-4|\) |
\(\verb|=0-2^3|\) | \(0-2^3\) | \(\verb|-8|\) |
2014.10.3 作成 / 2014.11.29 更新
Excelでの日付は,1900年1月1日を起点としたシリアル値で表現される。
日付 | シリアル値 |
1900年1月1日 | 1 |
1900年1月2日 | 2 |
1900年1月3日 | 3 |
日付のシリアル値は整数であるが,実際のシリアル値は小数部を含んだ数値になっており,小数部では時刻を表すために用いられる。
時刻 | シリアル値 |
00時00分00秒 | .00000 |
00時00分01秒 | .00001 |
00時01分00秒 | .00069 |
01時00分00秒 | .04167 |
23時59分59秒 | .99999 |
この表ではシリアル値を小数第5位までに丸めてある。
整数部に日付を,小数部に時刻を記録するようにすれば, ひとつのシリアル値で日付と時刻を同時に表現することができる。 起点となる1900年1月1日 午前0時0分0秒のシリアル値は1.00000である。 シリアル値で表現できる日付・時刻は1900年1月1日 午前0時0分0秒から, 9999年12月31日 午後11時59分59秒までである。
日付・時刻 | シリアル値 |
1900年1月1日 00時00分00秒 | 1.00000 |
1900年1月2日 06時00分00秒 | 2.25000 |
1900年1月3日 12時00分00秒 | 3.50000 |
1900年は平年なので2月29日は存在しない日付であるが,Excelでは1900年2月29日にもシリアル値が割り振られている。 Excelで1900年2月28日以前の日付を使うと期待通りの結果が得られない。 1900年3月1日以降の日付で正しく動作する。
日付 | シリアル値 |
1900年2月28日 | 59 |
1900年2月29日 | 60 |
1900年3月1日 | 61 |
Microsoftの106339文書によると,
Excel の日付システムは、他の表計算ソフトとの互換性を完全に満たすように定義されています。
VBA の WEEKDAY 関数では正しい値が返ります。
とあり,先行製品の誤りについても互換性を優先したようである。
バージョンによってはシリアル値の起点が1904年1月1日とされることもある。
日付 | シリアル値 |
1904年1月1日 | 1 |
1904年1月2日 | 2 |
1904年1月3日 | 3 |
Microsoft Excel for Windows ではデフォルトで最初の日付が1900年1月1日となり, Microsoft Excel for Macintosh ではデフォルトで最初の日付が1904年1月1日となる。
たとえば,日付2014年12月27日のシリアル値を得るには,DATE(),DATEVALUE(),DATESTRING()を用いる。 時刻のシリアル値を得るには,TIME(),TIMEVALUE()を用いる。
Excelの数式 | シリアル値 |
DATE(2014,12,27) | 42000 |
TIME(19,48,0) | 0.825 |
たとえば,シリアル値42000.825から日付を得るには,YEAR(),MONTH(),DAY(),WEEKDAY()を用いる。 時刻を得るには,HOUR(),MINUTE(),SECOND()を用いる。
Excelの数式 | 日付・時刻 |
YEAR(42000.825) | 2014 |
MONTH(42000.825) | 12 |
DAY(42000.825) | 27 |
WEEKDAY(42000.825,2) | 6 |
HOUR(42000.825) | 19 |
MINUTE(42000.825) | 48 |
SECOND(42000.825) | 0 |
2014.9.29 作成 / 2014.12.12 更新
x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0.5 | 0 | =POWER(A3,B3) | 1 |
1 | 0 | =POWER(A4,B4) | 1 |
1.5 | 0 | =POWER(A5,B5) | 1 |
2 | 0 | =POWER(A6,B6) | 1 |
y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0 | 0.5 | =POWER(A3,B3) | 0 |
0 | 1 | =POWER(A4,B4) | 0 |
0 | 1.5 | =POWER(A5,B5) | 0 |
0 | 2 | =POWER(A6,B6) | 0 |
PERMUTATIONA(n, k)
総数 n のものから抜き取り数 k のものを取る重複順列の数が返される。 総数 n に指定できる値の範囲は n ≥ 0 で, n = 0 も指定できるようになっている。 \[ \text{PERMUTATIONA}(n, k) = n^k \] 特に総数が n = 0 の場合の重複順列の数は次の式で求められる。 \[ \text{PERMUTATIONA}(0, k) = 0^k,\qquad k=0,1,2,\dots \] k = 0 のときに 0の0乗 が現れて本来なら計算できないはずだが, PERMUTATIONA 関数の結果は 1 になっている。 \[ \text{PERMUTATIONA}(0, 0) = 0^0 = 1 \]
n | k | 数式 | 結果 |
0 | 0 | =PERMUTATIONA(A2,B2) | 1 |
0 | 1 | =PERMUTATIONA(A3,B3) | 0 |
0 | 2 | =PERMUTATIONA(A4,B4) | 0 |
0 | 3 | =PERMUTATIONA(A5,B5) | 0 |
重複順列の計算結果 PERMUTATIONA(0, 0) = 1 が正当かどうかは判断できないが,0の0乗が現れないように定義式を修正しなければならない。
k = 1, 2, 3, … の場合はそのままでよい。 \[ \text{PERMUTATIONA}(n, k) = n^k,\qquad k = 1,2,3,\dots \] k = 0 の場合は0の0乗が現れないように修正する。 \[ \text{PERMUTATIONA}(n, 0) = 1 \] ただしこのように定めることが正当かどうかは判断できない。
次のページへ
2016.9.14 作成 / 2016.9.14 更新
正の整数 n に対して階乗を n! = n × (n−1) × (n−2) × … × 2 × 1 とし, n = 0 に対して 0! = 1 とする。 負の整数の階乗は定義されない。EXCEL では負の整数の階乗がエラー値 #NUM! になる。 \begin{align} &\text{FACT}(n) = n! = n (n-1) (n-2) \cdot\dots\cdot 2 \cdot 1,& n \ge 1 \\ &\text{FACT}(0) = 0! = 1 \end{align}
n | 数式 | 結果 |
−1 | =FACT(A2) | #NUM! |
0 | =FACT(A3) | 1 |
1 | =FACT(A4) | 1 |
2 | =FACT(A5) | 2 |
3 | =FACT(A6) | 6 |
二項係数は,総数 n のものから異なる抜き取り数 k のものを取る組合せの数を表す。 総数 n には n ≥ 0 の範囲の整数,抜き取り数 k には 0 ≤ k ≤ n の範囲の整数を指定する。 それ以外の n と k では定義できない。 EXCEL では範囲外の二項係数がエラー値 #NUM! になる。 \[ \text{COMBIN}(n, k) = \binom{n}{k} = \frac{n!}{k!(n-k)!} \]
n | k | 数式 | 結果 |
3 | −1 | =COMBIN(A2,B2) | #NUM! |
3 | 0 | =COMBIN(A3,B3) | 1 |
3 | 1 | =COMBIN(A4,B4) | 3 |
3 | 2 | =COMBIN(A5,B5) | 3 |
3 | 3 | =COMBIN(A6,B6) | 1 |
3 | 4 | =COMBIN(A7,B7) | #NUM! |
COMBINA(n, k)
総数 n のものから抜き取り数 k のものを取る重複組合せの数が返される。 総数 n に指定できる値の範囲は n ≥ 0 で, n = 0 も指定できるようになっている。 \[ \text{COMBINA}(n, k) = \binom{n+k-1}{n-1} = \frac{(n+k-1)!}{k!(n-1)!} \] 特に総数が n = 0 の場合の重複組合せの数は次の式で求められる。 \[ \text{COMBINA}(0, k) = \binom{0+k-1}{0-1} = \frac{(0+k-1)!}{k!(0-1)!},\qquad k=0,1,2,\dots \] 二項係数 COMBIN の抜き取り数に −1 が現れて(あるいは −1 の階乗が現れて)本来なら計算できないはずだが, k = 0 に限っては重複組合せ COMBINA 関数の結果が 1 になっている。 \[ \text{COMBINA}(0, 0) = \binom{0+0-1}{0-1} = \frac{(0+0-1)!}{0!(0-1)!} = 1 \]
n | k | 数式 | 結果 |
0 | 0 | =COMBINA(A2,B2) | 1 |
0 | 1 | =COMBINA(A3,B3) | #NUM! |
0 | 2 | =COMBINA(A4,B4) | #NUM! |
0 | 3 | =COMBINA(A5,B5) | #NUM! |
重複組合せの計算結果 COMBINA(0, 0) = 1 が正当であるとはいえないが,二項係数や階乗に −1 が現れないように定義式を修正しなければならない。
k = 1, 2, 3, … の場合はそのままでよい。 n = 0 のときはこの式は計算できないが EXCEL でもエラー値になる。 \[ \text{COMBINA}(n, k) = \binom{n+k-1}{n-1} = \frac{(n+k-1)!}{k!(n-1)!},\qquad k = 1,2,3,\dots \] k = 0 の場合は二項係数や階乗に −1 が現れないように修正する。 \[ \text{COMBINA}(n, 0) = 1 \] ただしこのように定めることは正当とはいえない。
2016.9.15 作成 / 2016.9.15 更新
x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0.5 | 0 | =POWER(A3,B3) | 1 |
1 | 0 | =POWER(A4,B4) | 1 |
1.5 | 0 | =POWER(A5,B5) | 1 |
2 | 0 | =POWER(A6,B6) | 1 |
y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0 | 0.5 | =POWER(A3,B3) | 0 |
0 | 1 | =POWER(A4,B4) | 0 |
0 | 1.5 | =POWER(A5,B5) | 0 |
0 | 2 | =POWER(A6,B6) | 0 |
BINOM.DIST(x, n, p, 関数形式)
BINOM.DIST 関数に 関数形式 = FALSE を指定すると, 試行回数 n と成功率 p によって定められる二項分布の確率質量関数の値が返される。 成功率 p に指定できる値の範囲は 0 ≤ p ≤ 1 で, p = 0 や p = 1 も指定できるようになっている。 \[ \text{BINOM.DIST}(x, n, p, \text{FALSE}) = \binom{n}{x} p^x (1-p)^{n-x} \] 特に試行回数 n = 3 と成功率 p = 0 によって定められる二項分布の場合は, 確率質量関数の値が次の式で求められる。 \[ \text{BINOM.DIST}(x, 3, 0, \text{FALSE}) = \binom{3}{x} 0^x (1-0)^{3-x},\qquad x=0,1,2,3 \] x = 0 のときに 0の0乗 が現れて本来なら計算できないはずだが, BINOM.DIST 関数の結果は 1 になっている。 \[ \text{BINOM.DIST}(0, 3, 0, \text{FALSE}) = \binom{3}{0} 0^0 (1-0)^{3-0} = 1 \cdot 0^0 \cdot 1^3 = 1 \]
x | n | p | 数式 | 結果 |
0 | 3 | 0 | =BINOM.DIST(A2,B2,C2,FALSE) | 1 |
1 | 3 | 0 | =BINOM.DIST(A3,B3,C3,FALSE) | 0 |
2 | 3 | 0 | =BINOM.DIST(A4,B4,C4,FALSE) | 0 |
3 | 3 | 0 | =BINOM.DIST(A5,B5,C5,FALSE) | 0 |
BINOM.DIST(0, 3, 0, FALSE) = 1 とは,成功率が 0 である試行を独立に 3 回反復したとき,そのうちの 0 回が成功する確率は 1 である
,という意味である。
計算結果は正当といえるが,0の0乗が現れないように定義式を修正しなければならない。
1 ≤ x ≤ n−1 の場合はそのままでよい。 \[ \text{BINOM.DIST}(x, n, p, \text{FALSE}) = \binom{n}{x} p^x (1-p)^{n-x},\qquad 1 \le x \le n-1 \] x = 0 または x = n の場合は0の0乗が現れないように修正する。 \[ \text{BINOM.DIST}(0, n, p, \text{FALSE}) = (1-p)^n,\qquad \text{BINOM.DIST}(n, n, p, \text{FALSE}) = p^n \]
2016.8.31 作成 / 2016.9.14 更新
x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0.5 | 0 | =POWER(A3,B3) | 1 |
1 | 0 | =POWER(A4,B4) | 1 |
1.5 | 0 | =POWER(A5,B5) | 1 |
2 | 0 | =POWER(A6,B6) | 1 |
y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。
x | y | 数式 | 結果 |
0 | 0 | =POWER(A2,B2) | #NUM! |
0 | 0.5 | =POWER(A3,B3) | 0 |
0 | 1 | =POWER(A4,B4) | 0 |
0 | 1.5 | =POWER(A5,B5) | 0 |
0 | 2 | =POWER(A6,B6) | 0 |
POISSON.DIST(x, λ, 関数形式)
BINOM.DIST 関数に 関数形式 = FALSE を指定すると, 平均 λ によって定められるポアソン分布の確率質量関数の値が返される。 平均 λ に指定できる値の範囲は λ ≥ 0 で, λ = 0 も指定できるようになっている。 \[ \text{POISSON.DIST}(x, \lambda, \text{FALSE}) = \frac{\lambda^x e^{-\lambda}}{x!} \] 特に平均 λ = 0 によって定められるポアソン分布の場合は, 確率質量関数の値が次の式で求められる。 \[ \text{POISSON.DIST}(x, 0, \text{FALSE}) = \frac{0^x e^{-0}}{x!},\qquad x=0,1,2,\dots \] λ = 0 のときに 0の0乗 が現れて本来なら計算できないはずだが, POISSON.DIST 関数の結果は 1 になっている。 \[ \text{POISSON.DIST}(0, 0, \text{FALSE}) = \frac{0^0 e^{-0}}{0!} = \frac{0^0 \cdot 1}{1} = 1 \]
x | λ | 数式 | 結果 |
0 | 0 | =POISSON.DIST(A2,B2,FALSE) | 1 |
1 | 0 | =POISSON.DIST(A3,B3,FALSE) | 0 |
2 | 0 | =POISSON.DIST(A4,B4,FALSE) | 0 |
3 | 0 | =POISSON.DIST(A5,B5,FALSE) | 0 |
計算結果 POISSON.DIST(0, λ, FALSE) = 1 は正当といえるが,0の0乗が現れないように定義式を修正しなければならない。
x = 1, 2, 3, … の場合はそのままでよい。 \[ \text{POISSON.DIST}(x, \lambda, \text{FALSE}) = \frac{\lambda^x e^{-\lambda}}{x!},\qquad x = 1,2,3,\dots \] x = 0 の場合は0の0乗が現れないように修正する。 \[ \text{POISSON.DIST}(0, \lambda, \text{FALSE}) = e^{-\lambda} \]
2016.9.2 作成 / 2016.9.14 更新
仕様あるいは不具合 | 単項マイナス演算子 | 日付・時刻のシリアル値 | PERMUTATIONA | COMBINA | BINOM.DIST | POISSON.DIST
Home › 仕様あるいは不具合