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日

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日とされることもある。

日付シリアル値
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 更新

PERMUTATIONA

0の0乗が不定であること

x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
0.50=POWER(A3,B3)1
10=POWER(A4,B4)1
1.50=POWER(A5,B5)1
20=POWER(A6,B6)1

y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
00.5=POWER(A3,B3)0
01=POWER(A4,B4)0
01.5=POWER(A5,B5)0
02=POWER(A6,B6)0

PERMUTATIONA(Excel 2013)

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 \]

nk数式結果
00=PERMUTATIONA(A2,B2)1
01=PERMUTATIONA(A3,B3)0
02=PERMUTATIONA(A4,B4)0
03=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 \] ただしこのように定めることが正当かどうかは判断できない。

次のページへ

1 2 3 4 5 6 Next

2016.9.14 作成 / 2016.9.14 更新

COMBINA

階乗

正の整数 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 ≤ kn の範囲の整数を指定する。 それ以外の nk では定義できない。 EXCEL では範囲外の二項係数がエラー値 #NUM! になる。 \[ \text{COMBIN}(n, k) = \binom{n}{k} = \frac{n!}{k!(n-k)!} \]

nk数式結果
3−1=COMBIN(A2,B2)#NUM!
30=COMBIN(A3,B3)1
31=COMBIN(A4,B4)3
32=COMBIN(A5,B5)3
33=COMBIN(A6,B6)1
34=COMBIN(A7,B7)#NUM!

COMBINA(Excel 2013)

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 \]

nk数式結果
00=COMBINA(A2,B2)1
01=COMBINA(A3,B3)#NUM!
02=COMBINA(A4,B4)#NUM!
03=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 更新

BINOM.DIST

0の0乗が不定であること

x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
0.50=POWER(A3,B3)1
10=POWER(A4,B4)1
1.50=POWER(A5,B5)1
20=POWER(A6,B6)1

y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
00.5=POWER(A3,B3)0
01=POWER(A4,B4)0
01.5=POWER(A5,B5)0
02=POWER(A6,B6)0

BINOM.DIST(Excel 2010)

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 \]

xnp数式結果
030=BINOM.DIST(A2,B2,C2,FALSE)1
130=BINOM.DIST(A3,B3,C3,FALSE)0
230=BINOM.DIST(A4,B4,C4,FALSE)0
330=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 更新

POISSON.DIST

0の0乗が不定であること

x > 0 のとき一般に x0 = 1 が成り立つが, x = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
0.50=POWER(A3,B3)1
10=POWER(A4,B4)1
1.50=POWER(A5,B5)1
20=POWER(A6,B6)1

y > 0 のとき一般に 0y = 0 が成り立つが, y = 0 のときは成り立たず EXCEL では 00 がエラー値 #NUM! になる。

xy数式結果
00=POWER(A2,B2)#NUM!
00.5=POWER(A3,B3)0
01=POWER(A4,B4)0
01.5=POWER(A5,B5)0
02=POWER(A6,B6)0

POISSON.DIST(Excel 2010)

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λ数式結果
00=POISSON.DIST(A2,B2,FALSE)1
10=POISSON.DIST(A3,B3,FALSE)0
20=POISSON.DIST(A4,B4,FALSE)0
30=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 更新

Home


仕様あるいは不具合  |  単項マイナス演算子  |  日付・時刻のシリアル値  |  PERMUTATIONA  |  COMBINA  |  BINOM.DIST  |  POISSON.DIST

Home › 仕様あるいは不具合