3–24–1 式で使える演算子と関数

本製品の式で使用できる演算子について説明します。

式で使える算術演算子

表3・6 式で使える算術演算子
演算子 意味 入力例 表示(結果)
+加算15+2035
-減算15-20-5
*乗算1.5*23
%乗算(除算の余り)15%21

式で使える関係演算子

関係演算子で評価された結果、真の場合は1、偽の場合は0 になります。

表3・7 式で使える関係演算子
演算子 意味 入力例 表示(結果)
=等しい場合、真1.5=20
<>等しくない場合、真15<>21
<左側が右側よりも小さい場合、真1.5<21
>左側が右側よりも大きい場合、真1.5>20
<=左側が右側よりも等しいか小さい場合、真1.5<=21
>=左側が右側よりも等しいか大きい場合、真1.5>=20

関係演算子と型

関係演算子で左右を比較する際、片方は数字、片方は文字列のように両者の型が違う場合は、偽(0)として扱います。

値が入っていないテキストボックスや差込フィールドは、値0(ゼロ)として評価します。

演算子の優先順位

演算子は表3・8 演算子の優先順位で上にあるものほど優先順位が高くなります。

計算式の優先順位を明確にするために括弧「( )」を使用できます。

【優先順位の例】1.5 * 2 + 3 ⇒ (1.5 * 2) + 3 = 6

【結合規則の例】2 * 15 % 2 ⇒ (1.5 * 2) % 3 = 0

表3・8 演算子の優先順位
優先順位 演算子 結合規則
マイナス-(単項演算子)
乗算* 除算/ 剰余%左から右
加算+ 減算-左から右
&(文字列結合演算子)左から右
= <> <= >= < >(比較演算子)左から右

関数

表3・9 式に使える関数は式に使用できる関数の一覧です。

表3・9 式に使える関数
関数名書式 引数 返値説明
AVGAVG(値1, 値2,...)数値1, 数値
2...(複数指定
可)
平均値指定された引数の平均値を返します。
SUMSUM(値1, 値2,...)数値1, 数値
2...(複数指定
可)
合計値指定された引数の合計値を返します。
MINMIN(値1, 値2,...)数値1, 数値
2...(複数指定
可)
最小の値指定された引数に含まれる最小の数値を返します。
MAXMAX(値1, 値2,...)数値1, 数値
2...(複数指定
可)
最大値指定された引数に含まれる最大の数値を返します。
TODAYTODAY( )なし現在の日付を示すシリアル
値 (1900/1/1 = 1)
現在の日付を示すシリアル値を返します。
NOWNOW( )なし現在の時刻を示すシリアル
値 (00:00:01 = 0.00001)
現在の時刻を示すシリアル値を返します。
DATEDATE(文字列)日付文字列
【例】
"2007/1/17"
日付のシリアル値 (1900/1/1
= 1)
【例】DATE("2007/1/17") =
39099
指定された日付文字列から日付を示すシリアル値を返します。
TIME TIME(文字列)時間文字列
【例】
"10:30:00"
時刻のシリアル値 (00:00:01= 0.00001)
【例】TIME("10:30:00") =0.4375
指定された時刻文字列から時刻を示すシリアル値を返します。
YEAR YEAR(値) 年を示すシリアル値年 (1900 - 9999 の範囲の整数)指定されたシリアル値に対応する年を返します。
MONTH MONTH(値) 月を示すシリアル値月 (1 - 12 の範囲の整数)指定されたシリアル値に対応する月を返します。
WEEKDAY WEEKDAY(値, 種類)日付を示すシリアル値,種類(1 - 3)[省略可]曜日を示す整数指定されたシリアル値に対応する曜日を示す数値を返します。
種類が、1 のとき 1 (日曜) - 7(土曜) の範囲の整数
2 のとき 1 (月曜) - 7(日曜) の範囲の整数
3 のとき 0 (月曜) - 6(日曜) の範囲の整数
DAY DAY(値) 日付を示すシリアル値日 (1 - 31 の範囲の整数)指定されたシリアル値に対応する日を返します。
HOUR HOUR(値) 日付と時刻を示すシリアル値時間 (0 - 23 の範囲の整数)指定されたシリアル値に対応する時間を返します。
MINUTE MINUTE(値) 日付と時刻を示すシリアル値分 (0 - 59 の範囲の整数)指定されたシリアル値に対応する分を返します。
SECOND SECOND(値) 日付と時刻を示すシリアル値秒 (0 - 59 の範囲の整数)指定されたシリアル値に対応する秒を返します。
PAGE PAGE( )なし現在のページ番号現在のページ番号を返します。
TOTALPAGE TOTALPAGE( )なし総ページ数総ページ数を返します。
MOD MOD(数値,除数)数値, 除数剰余
【例】
MOD(22, 3)=1
MOD(22.5, 3)=1.5
数値を除数で割ったときの剰余を返します。
ABS ABS(数値)数値絶対値
【例】
ABS(-3)=3
ABS(3)=3
数値を絶対値にします。
INT INT(数値)数値小数点以下を切り捨てた整数
【例】
INT(20.111111)=20
INT(20.999999)=20
数値を小数点以下を切り捨てて整数にします。
ROUND ROUND(値,桁数)数値, 桁数四捨五入した結果の値
ROUND(2.15,1) = 2.2
数値を四捨五入して指定された桁数にします。
ROUNDDOWNROUNDDOWN(値, 桁数)数値, 桁数切り捨てした結果の値
ROUNDDOWN(2.15,1) = 2.1
数値を指定された桁数に切り捨てます。
ROUNDUP ROUNDUP(値, 桁数)数値, 桁数切り上げした結果の値
ROUNDUP (2.13,1) = 2.2
ROUNDUP (2.13,1) = 2.2
数値を指定された桁数に切り上げます。
T T(値)文字列
【例】
T("abc")="abc"
T(123)=""
指定された値に応じた文字列を返します。
指定された値が文字列のときは、そのまま指定された文字列を返します。
指定された値が数値のときは、空文字列を返します。
LEN LEN(文字列) 文字列文字数
【例】
LEN("abc")=3
LEN(12345)=5
指定された文字列の文字数を返します。
数値の場合にも暗黙に文字列に変換します。
TRIML TRIML(文字列)文字列トリミングされた文字列
【例】
TRIML(" abc")="abc"
指定された文字列の先頭からスペース、タブ、改行文字を削除します。
TRIMR TRIMR(文字列)文字列トリミングされた文字列
【例】
TRIMR("abc ")="abc"
指定された文字列の行末からスペース、タブ、改行文字を削除します。
RANK RANK(数値,範囲, 順序)数値, 範囲,順序(0 = 降順, 1 = 昇順)順位を示す値
【例】差込フィールド(表)
RANK(E2.b2, E2.b1:E2.b5,0)=3
順序に従って範囲内の数値を並べ替えたとき、数値が何番目に位置するかを返します。
COUNT COUNT(範囲)範囲データ個数
【例】差込フィールド(表)
COUNT(E2.b1:E2.b5)
指定された範囲のオブジェクトに含まれる空白以外のデータ個数を返します。
COUNTBLANKCOUNTBLANK(範囲)範囲データ個数
【例】差込フィールド(表)
COUNTBLANK(E2.b1:E2.b5)
指定された範囲のオブジェクトに含まれる空白データの個数を返します。
IF IF(式1, 式2,式3)条件式, 式(真の場合),式(偽の場合)指定された式を判定します。
IF(t1=t2, t3, t4)
IF(t1=PAGE(), 今日, 昨日)
論理式の評価結果が真のときは第2 引数で指定した値、偽の場合は第3 引数で指定した値となります。
SUMIF SUMIF(条件範囲, 条件,合計範囲)条件範囲, 条件式を示す文字列, 合計範囲(省略不可)合計値
【例】差込フィールド(表)
SUMIF(E2.a1:E2.a5, "=AAA",E2.b1:E2.b5)
この例は、条件範囲に表a1 - a5 を指定して、条件となる式"=AAA"を満す対応された合計範囲の表b1 - b5 内の合計値が返る。
条件を満たす範囲内の値の合計値を返します。
条件範囲と合計範囲の指定にはデータ数を揃える必要があります。
また条件範囲と合計範囲を同じにできます。
COUNTIF COUNTIF(範囲, 検索条件)範囲, 検索条件を示す文字列データ個数
【例】差込フィールド(表)
COUNTIF(E2.a1:E2.a5,"AAA")
この例は、条件範囲に表a1 - a5 を指定して、検索条件となる文字列"AAA"の個数をカウント。
検索条件を満たす指定された範囲のデータ個数を返します。
CONTAINS CONTAINS(文字列, 検索文字列)文字列, 検索文字列真(1)か偽(0)
【例】
CONTAINS("ABC", "A")=1
CONTAINS("ABC", "X")=0
CONTAINS(199,99)=1
指定された文字列内に検索文字列が含まれる場合に真(1)を返します。
含まれない場合に偽(0)を返します。
数値が指定された場合には、暗黙に文字列に変換して検索を行います。
AND AND(論理式1, 論理式2...)論理式1, 論理式2...真(1)か偽(0)
【例】
AND(E2.a1="AAA",E2.b1=999)
E2.a1 に"AAA"かつE2.b1 に999 が入っていれば1を返し、いずれかが違っていれば0を返す。
指定された複数の条件が全て真かどうか判定します。
OR OR(論理式1,論理式2...)論理式1, 論理式2...真(1)か偽(0)
【例】
OR(E2.a1="AAA",E2.b1=999)
E2.a1 に"AAA"またはE2.b1に999 が入っていれば1を返し、いづれも違う場合には0を返す。
指定された複数の条件のうち、どれか一つが真かどうか判定します。
NOT NOT(論理式) 論理式真(1)か偽(0)
【例】
NOT(E2.a1="AAA")
E2.a1 に"AAA"が入っていれば0を返し、違う場合には1を返す。
指定された論理式の結果が真の場合には偽を返し、偽の場合には真を返します。

文字列の結合

&演算子を使うと文字列の結合ができます。

【例1】HOUR やPAGE 関数は通常は数値を返しますが、&演算子と一緒に使うと、暗黙のうちに返り値が文字列として扱われます。

"現在は" & HOUR(NOW()) & "時です" ⇒ 現在は12 時です

PAGE() & " / " & TOTALPAGE() ⇒ 12 / 52

【例2】DATE 関数やTIME 関数など、文字列のみを引数として取る関数に数値を渡したいときは、数値をダブルクォーテーション「"」で囲むことで文字列として渡します。次の例はオブジェクト名「T1」のテキストボックスには「2008」という数値が入っていますが、&演算子により暗黙のうちに文字列として扱われます。

DATE(T1 & "/12/23")  ⇒ 39805(2008 年12 月23 日を表すシリアル値)

計算のタイミング

式は、値がテキストボックスに入力されたときなど、様々なタイミングで再計算されます。

手動で再計算する場合は、[F5]キーを押すか、「表示」タブの「その他」グループにある「更新」をクリックします。

Mspng テキストボックスの改行と表示形式

テキストボックスに数値を入力するときは1行にしなければなりません。数値が(改行を含め)2行以上になると、数値ではなく文字列と判断されます。

計算式で参照に使われるテキストボックス内に改行記号があると、計算が行われません。結果を表示するテキストボックスには「#ERROR!」と表示されます。