サポート > リポジトリ > 関数 > 数値関数
ja | en

数値演算処理に関する47個の関数を紹介します。

ABS |  ACOS |  ADDR7.4 |  ATAN |  ATAN2 |  ASIN |  CBRT |  CEILING |  COS |  COSH |  DEGREES |  DIVR7.4 |  EVEN |  EXP |  FACT |  FIXED |  FLOOR |  HYPOT |  IEEEremainder |  INT |  LN |  LOG |  LOG1P |  LOG10 |  MOD |  MROUND |  MULR7.4 |  ODD |  PI |  POWER |  QUOTIENT |  RADIANS |  RAND |  RANDBETWEEN |  RINT |  ROUND |  ROUNDDONW |  ROUNDUP |  SIN |  SINH |  SIGN |  SIGNUM |  SQRT |  SUBR7.4 |  TAN |  TANH |  TRUNC

ABS(数値)

引数の数値の絶対値を返します。戻り値の型は「整数」です。

例:

ABS(${item1})

動作
ABS(10) 10
ABS(-10) 10
ABS(-3.14) 3.14

ACOS(求める角度のコサインの値)

数値のアークコサインを返します。アークコサインとは、そのコサインが数値であるような角度のことです。

例:

ACOS(${item1})

入力値 item1 は、求める角度のコサインの値を、-1 〜 1 の範囲で指定します。 戻り値の角度は、0 (ゼロ) 〜 PI の範囲のラジアンとなります。

ADD(数値,数値)

ADD(数値の文字列表現,数値の文字列表現)

引数の数を加算します。内部ではJavaが提供するBigDecimalクラスを使った演算を行います。浮動小数を含む厳密な計算に向いています。戻り値は数値の文字列表現になります。

例:

VALUE(ADD("0.001", "123.456"))
VALUE(ADD(0.001, 123.456))
上の二つは厳密には同じではありません。0.001という浮動小数を表現した段階で、すでに誤差が含まれてます。より確実な演算を行う場合は、浮動小数部は "0.001" というように文字列を引数とする方がよいでしょう。
VALUE(ADD(1000, "0.1"))

このように、引数に数値と文字列表現を混在させることもできます。

ADD関数の戻り値にVALUE関数を適用することで、8バイト浮動小数値に変換することができます。

ATAN(求める角度のタンジェントの値)

数値のアークタンジェントを返します。アークタンジェントとは、そのタンジェントが数値であるような角度のことです。

例:

ATAN(${item1})

入力値 item1 には、求める角度のタンジェントの値を指定します。戻り値の角度は、-PI/2 〜 PI/2 の範囲のラジアンとなります。

ATAN2(x座標値, y座標値)

指定された x-y 座標のアークタンジェントを返します。 アークタンジェントとは、x 軸から、原点 0 と x 座標、y 座標で表される点を結んだ直線までの角度のことです。

例:

ATAN2(${item1}, ${item2})

入力値 item1, item2 には、それぞれ x 点の x 座標および y 点の y 座標を指定します。 戻り値の角度は、-PI 〜 PI (ただし -PI を除く) の範囲のラジアンとなります。

ASIN(求める角度のサインの値)

数値のアークサインを返します。アークサインとは、そのサインが数値であるような角度のことです。

例:

ASIN(${item1})

入力値 item1 は、求める角度のサインの値を -1 〜 1 の範囲で指定します。戻り値の角度は、-PI/2 〜 PI/2 の範囲のラジアンとなります。

CBRT(数値)

引数の数値の立方根を返します。

例:

CBRT(${item1})

CEILING(数値, 基準値)

数値を基準値の倍数に近い値に切り上げます。戻り値の型は 8 バイト浮動小数点型です。

例:

CEILING(${item1}, 1)

動作
CEILING(2.5, 1) 3
CEILING(-2.5, -2) -4
CEILING(-2.5, 2) -2.5
CEILING(1.5, 0.1) 1.5

時間にも適用できます。

動作
TEXT(CEILING(${time}, "1:00"), "hh:mm") "12:00"
※ ${time} 項目の型が時間型で、値が "11:30:00" のとき
DATETIMEVALUE(TEXT(DATE(${datetime}) + CEILING(TOTIME(${datetime}), "1:00"), "yyyy-MM-dd HH:mm:ss")) 2008-3-14 12:00:00
※ ${datetime} 項目の型が日付時刻型で、値が "2008-3-14 11:30:00" のとき

COS(数値)

指定した角度のコサインを返します。コサインを求める角度をラジアンを単位として指定します。戻り値の型は 8 バイト浮動小数点型です。

例:

COS(${item1})

動作
COS(60d*PI()/180d) 0.5
※ 実数計算の場合、数字の後ろに "d" を付与してください。

COSH(双曲線余弦を求める実数)

数値の双曲線余弦 (ハイパーボリック コサイン) を返します。

例:

COSH(${item1})

DEGREES(数値)

ラジアンを度に変換します。戻り値の型は 8 バイト浮動小数点型です。

例:

DEGREES(${item1})

動作
DEGREES(PI()) 180

DIV(数値,数値,スケール[,丸めモード])

DIV(数値の文字列表現,数値の文字列表現,スケール[,丸めモード])

引数の数を徐算します。内部ではJavaが提供するBigDecimalクラスを使った演算を行います。浮動小数を含む厳密な計算に向いています。戻り値は数値の文字列表現になります。

例:

VALUE(DIV(ADD(MUL(10000, "0.12"),MUL(10000, "0.34")),100,2,"HALFUP"))

上記例のように、引数に数値と文字列表現を混在させることもできます。0.12という浮動小数を表現した段階で、すでに誤差が含まれてしまうため、より確実な演算を行う場合は、浮動小数部は "0.12" というように文字列を引数とする方がよいでしょう。

スケールは小数点以下の桁数です。

丸めモードは次の表記を指定できます。省略時は HALFUP (四捨五入) になります。

指定 説明
CEILING 正の無限大に近づくように丸めるモード
DOWN ゼロに近づくように丸めるモード
FLOOR 負の無限大に近づくように丸めるモード
HALFDOWN 五捨六入
HALFEVEN 末尾が偶数のほうに丸める
HALFUP ※省略時 四捨五入
UP 0 から離れるように丸めるモード

DIV関数の戻り値にVALUE関数を適用することで、8バイト浮動小数値に変換することができます。

EVEN(数値)

最も近い偶数に切り上げた値を返します。戻り値の型は整数型です。

例:

EVEN(${item1})

動作
EVEN(1.5) 2
EVEN(3) 4
EVEN(-1) -2
EVEN(0) 0

EXP(数値)

e を底とする数値のべき乗を返します。戻り値の型は 8 バイト浮動小数点型です。

例:

EXP(${item1})

FACT(数値)

数値の階乗を返します。数値に整数以外の値を指定すると、小数点以下が切り捨てられます。戻り値の型は 8 バイト整数です。

例:

FACT(${item1})

動作
FACT(5) 120

FIXED(数値, 桁数, 桁区切り)

数値を四捨五入し、ピリオド(".") とカンマ(",") から構成される文字列に変換します。 桁数は四捨五入の位置を示します。省略すると小数第二位とみなします。 桁区切り部分は "true" か "false" を指定します。省略すると false とみなします。

例:3桁目で四捨五入とし、桁区切り(3桁毎に "," を挿入する)を行う。

FIXED(${item1}, 3, true)

動作
FIXED(123.4, 0, false) "123"
FIXED(1234567, -1, true) "1,234,570"
FIXED(1234.567, 5) "1234.56700"
FIXED(1234.567) "1234.57"

FLOOR(数値, 基準値)

数値を基準値の倍数に近い値に切り下げます。戻り値の型は 8 バイト浮動小数点型です。

例:

FLOOR(${item1}, 1)

動作
FLOOR(2.5, 1) 2
FLOOR(-2.5, -2) -2
FLOOR(-2.5, 2) -2.5
FLOOR(1.5, 0.1) 1.5

時間にも適用できます。

動作
TEXT(FLOOR(${time}, "1:00"), "hh:mm") "11:00"
※ ${time} 項目の型が時刻型で、値が "11:30:00" のとき
DATETIMEVALUE(TEXT(DATE(${datetime}) + FLOOR(TOTIME(${datetime}), "1:00"), "yyyy-MM-dd HH:mm:ss")) 2008-3-14 11:00:00
※ ${datetime} 項目の型が日付時間型で、値が "2008-3-14 11:30:00" のとき

HYPOT(数値1, 数値2)

中間のオーバーフローやアンダーフローなしに sqrt(x2+y2) が返されます。

例:

HYPOT(${x}, ${y})

IEEEremainder(数値1, 数値2)

IEEE 754 標準に従って、2 個の引数について剰余を計算します。

例:

IEEEremainder(${item1}, ${item2})

INT(数値)

指定した数値を超えない最大の整数を返します。

例:

INT(${item1})

動作
INT(8.9) 8
INT(-8.1) -9

LN(数値)

数値の自然対数を返します。戻り値の型は 8 バイト浮動小数点型です。

例:

LN(${item1})

LOG(数値)

数値の自然対数を返します。戻り値の型は 8 バイト浮動小数点型です。

例:

LOG(${item1})

LOG(数値, 底)

指定された数を底とする数値の対数を返します。戻り値の型は 8 バイト浮動小数点型です。

例:

LOG(${item1}, ${item2})

LOG1P(数値)

引数と 1 の合計の自然対数を返します。

例:

LOG1P(${num})

LOG10(数値)

10 を底とする数値の対数(常用対数)を返します。戻り値の型は 8 バイト浮動小数点型です。

例:

LOG10(${item1})

動作
LOG(10) 1.0
LOG(8,2) 3.0
LOG10(10) 1.0

MOD(数値, 除数)

数値を除数で割った余りを求めます。戻り値の型は整数型です。

例:

MOD(${item1}, ${item2})

動作
MOD(10,3) 1

MROUND(数値, 基準値)

数値を基準値の倍数に丸めます(四捨五入)。戻り値の型は 8 バイト浮動小数点型です。

例:

MROUND(${item1}, 1)

動作
MROUND(10, 3) 9
MROUND(-10, -3) -9
MROUND(1.3, 0.2) 1.4
MROUND(5, -2) 5

時間にも適用できます。

動作
TEXT(MROUND(${time}, "0:30"), "hh:mm") "11:30"
※ ${time} 項目の型が時間型で、値が "11:31:00" のとき
DATETIMEVALUE(TEXT(DATE(${datetime}) + MROUND(TOTIME(${datetime}), "0:30"), "yyyy-MM-dd HH:mm:ss")) 2008-3-14 11:30:00
※ ${datetime} 項目の型が日付時刻型で、値が "2008-3-14 11:31:00" のとき

MUL(数値,数値)

MUL(数値の文字列表現,数値の文字列表現)

引数の数を乗算します。内部ではJavaが提供するBigDecimalクラスを使った演算を行います。浮動小数を含む厳密な計算に向いています。戻り値は数値の文字列表現になります。

例:

VALUE(MUL("123.456", "456.789"))
VALUE(MUL(123.456, 456.789))
上の二つは厳密には同じではありません。123.456という浮動小数を表現した段階で、すでに誤差が含まれてます。より確実な演算を行う場合は、浮動小数部は "123.456" というように文字列を引数とする方がよいでしょう。
VALUE(MUL(1000, "0.1"))

このように、引数に数値と文字列表現を混在させることもできます。

MUL関数の戻り値にVALUE関数を適用することで、8バイト浮動小数値に変換することができます。

ODD(数値)

最も近い奇数に切り上げた値を返します。戻り値の型は整数型です。

例:

ODD(${item1})

動作
ODD(3) 3
ODD(2) 3
ODD(1.5) 3
ODD(0) 1
ODD(-2) -3

PI()

円周率πの近似値である数値 3.14159265358979 を返します。この数値の精度は 15 桁です。戻り値の型は 8 バイト浮動小数点型です。

例:

PI()

POWER(数値, 指数)

数値の指数乗を返します。数値、指数には整数または小数値を指定できます。戻り値の型は 8 バイト浮動小数点型です。

例:

POWER(${item1}, 2)

動作
POWER(5,2) 25.0

QUOTIENT(分子, 分母)

除算の商の整数部を返します。戻り値の型は整数型です。

例:

QUOTIENT(${item1}, ${item2})

動作
QUOTIENT(5, 2) 2
QUOTIENT(4.5, 3.1) 1
QUOTIENT(-10, 3) -3

RADIANS(数値)

度をラジアンに変換します。戻り値の型は 8 バイト浮動小数点型です。

例:

RADIAN(${item1})

動作
RADIANS(270) 4.712389

RAND()

0 以上で 1 より小さい乱数を発生させます。戻り値の型は 8 バイト浮動小数点型です。

ある項目 A で RAND() を適用し、別の項目 B が A の値を参照する場合、B の値と A の値は同じになります。
ある項目 A で RAND() を複数回用いた場合、最初の RAND() の結果と二つ目以降の RAND() の結果は同じ値となります。

例:

RAND()

RANDBETWEEN(最小値, 最大値)

指定された範囲で一様に分布する整数の乱数を返します。戻り値の型は整数型です。

ある項目 A で RAND() を適用し、別の項目 B が A の値を参照する場合、B の値と A の値は同じになります。
ある項目 A で RAND() を複数回用いた場合、最初の RAND() の結果と二つ目以降の RAND() の結果は同じ値となります。

例:

RANDBETWEEN(${min}, ${max})

RINT(数値)

引数の値にもっとも近く、計算上の整数に等しい double 値を返します。

例:

RINT(${item1})

ROUND(数値,桁数)

数値を四捨五入して指定された桁数にします。戻り値の型は「4バイト浮動小数点」または「8バイト浮動小数点」になります。(引数の数値の型によって、戻り値の型も自動的に決まります。)

  • 桁数に正の数を指定すると、数値は小数点の右側 (小数点以下) で四捨五入され、小数点以下の桁数が桁数に等しくなります。
  • 桁数に 0 を指定すると、数値は最も近い整数として四捨五入されます。
  • 桁数に負の数を指定すると、数値は小数点の左側 (整数部分) の指定した桁 (1 の位を 0 とする) に四捨五入されます。

例:小数点2桁に丸める場合

ROUND(${item1}/${item2}, 2)

動作
ROUND(2.15, 1) 2.15 を小数点第 1 位に四捨五入します (2.2)
ROUND(2.149, 1) 2.149 を小数点第 1 位に四捨五入します (2.1)
ROUND(-1.475, 2) -1.475 を小数点第 2 位に四捨五入します (-1.48)
ROUND(21.5, -1) 21.5 を小数点の左側 1 桁の 1 の位で四捨五入します (20)

この関数は、演算誤差をなくすものではありません。ROUNDと演算精度についての詳細は「計算式>基本的な書き方>演算精度」をお読みください。

ROUNDDOWN(数値,桁数)

数値を切り捨てて指定された桁数にします。戻り値の型は「4バイト浮動小数点」または「8バイト浮動小数点」になります。(引数の数値の型によって、戻り値の型も自動的に決まります。)

例:小数点2桁で切り捨てる場合

ROUNDDOWN(${item1}/${item2}, 2)

この関数は、演算誤差をなくすものではありません。ROUNDと演算精度についての詳細は「計算式>基本的な書き方>演算精度」をお読みください。

ROUNDUP(数値,桁数)

数値を切り上げて指定された桁数にします。戻り値の型は「4バイト浮動小数点」または「8バイト浮動小数点」になります。(引数の数値の型によって、戻り値の型も自動的に決まります。)

例:小数点2桁に切り上げる場合

ROUNDUP(${item1}/${item2}, 2)

この関数は、演算誤差をなくすものではありません。ROUNDと演算精度についての詳細は「計算式>基本的な書き方>演算精度」をお読みください。

SIN(数値)

指定した角度のサインを返します。サインを求める角度をラジアンを単位として指定します。戻り値の型は 8 バイト浮動小数点型です。

例:

SIN(${item1})

動作
SIN(PI()/2) 1
SIN(30d*PI()/180d) 0.5
※ 実数計算の場合、数字の後ろに "d" を付与してください。

SINH(双曲線正弦を求める実数)

数値の双曲線正弦 (ハイパーボリック サイン) を返します。

例:

SINH(${item1})

SIGN(数値)

引数の数値が正/負/ゼロかどうかを判定します。 数値が正の数のときは 1, ゼロのときは 0, 負の数のときは -1 を返します。戻り値の型は「整数」です。

例:

SIGN(${item1})

動作
SIGN(100) 1
SIGN(0) 0
SIGN(-100) -1

SIGNUM(数値)

引数の符号要素を返します。

例:

SIGNUM(${item1})

SQRT(数値)

正の平方根を返します。なお数値に負数を指定すると、NaN (無効な演算結果を意味する特殊表記)が返されます。戻り値の型は 8 バイト浮動小数点型です。

例:

SQRT(${item1})

動作
SQRT(16) 4.0
SQRT(-2) Double.NaN

SUB(数値,数値)

SUB(数値の文字列表現,数値の文字列表現)

引数の数を減算します。内部ではJavaが提供するBigDecimalクラスを使った演算を行います。浮動小数を含む厳密な計算に向いています。戻り値は数値の文字列表現になります。

例:

VALUE(SUB("123.456", "0.001"))
VALUE(SUB(123.456, 0.001))
上の二つは厳密には同じではありません。0.001という浮動小数を表現した段階で、すでに誤差が含まれてます。より確実な演算を行う場合は、浮動小数部は "0.001" というように文字列を引数とする方がよいでしょう。
VALUE(SUB(1000, "0.1"))

このように、引数に数値と文字列表現を混在させることもできます。

SUB関数の戻り値にVALUE関数を適用することで、8バイト浮動小数値に変換することができます。

TAN(数値)

指定した角度のタンジェントを返します。タンジェントを求める角度をラジアンを単位として指定します。戻り値の型は 8 バイト浮動小数点型です。

例:

TAN(${item1})

動作
TAN(45d*PI()/180d) 1
※ 実数計算の場合、数字の後ろに "d" を付与してください。

TANH(双曲線余弦を求める実数)

数値の双曲線正接 (ハイパーボリック タンジェント) を返します。

例:

TANH(${item1})

TRUNC(数値)

数値の小数部を切り捨てて、整数に変換します。戻り値の型は整数型です。

例:

TRUNC(${item1})

動作
TRUNC(8.9) 8
TRUNC(-8.1) -8