本製品の式で使用できる演算子について説明します。
演算子 | 意味 | 入力例 | 表示(結果) |
---|---|---|---|
+ | 加算 | 15+20 | 35 |
- | 減算 | 15-20 | -5 |
* | 乗算 | 1.5*2 | 3 |
% | 乗算(除算の余り) | 15%2 | 1 |
関係演算子で評価された結果、真の場合は1、偽の場合は0 になります。
演算子 | 意味 | 入力例 | 表示(結果) |
---|---|---|---|
= | 等しい場合、真 | 1.5=2 | 0 |
<> | 等しくない場合、真 | 15<>2 | 1 |
< | 左側が右側よりも小さい場合、真 | 1.5<2 | 1 |
> | 左側が右側よりも大きい場合、真 | 1.5>2 | 0 |
<= | 左側が右側よりも等しいか小さい場合、真 | 1.5<=2 | 1 |
>= | 左側が右側よりも等しいか大きい場合、真 | 1.5>=2 | 0 |
関係演算子で左右を比較する際、片方は数字、片方は文字列のように両者の型が違う場合は、偽(0)として扱います。
値が入っていないテキストボックスや差込フィールドは、値0(ゼロ)として評価します。
演算子は表3・8 演算子の優先順位で上にあるものほど優先順位が高くなります。
計算式の優先順位を明確にするために括弧「( )」を使用できます。
【優先順位の例】1.5 * 2 + 3 ⇒ (1.5 * 2) + 3 = 6
【結合規則の例】2 * 15 % 2 ⇒ (1.5 * 2) % 3 = 0
優先順位 | 演算子 | 結合規則 |
---|---|---|
高 | マイナス-(単項演算子) | |
↑ | 乗算* 除算/ 剰余% | 左から右 |
↑ | 加算+ 減算- | 左から右 |
↑ | &(文字列結合演算子) | 左から右 |
低 | = <> <= >= < >(比較演算子) | 左から右 |
表3・9 式に使える関数は式に使用できる関数の一覧です。
関数名 | 書式 | 引数 | 返値 | 説明 |
---|---|---|---|---|
AVG | AVG(値1, 値2,...) | 数値1, 数値 2...(複数指定 可) | 平均値 | 指定された引数の平均値を返します。 |
SUM | SUM(値1, 値2,...) | 数値1, 数値 2...(複数指定 可) | 合計値 | 指定された引数の合計値を返します。 |
MIN | MIN(値1, 値2,...) | 数値1, 数値 2...(複数指定 可) | 最小の値 | 指定された引数に含まれる最小の数値を返します。 |
MAX | MAX(値1, 値2,...) | 数値1, 数値 2...(複数指定 可) | 最大値 | 指定された引数に含まれる最大の数値を返します。 |
TODAY | TODAY( ) | なし | 現在の日付を示すシリアル 値 (1900/1/1 = 1) | 現在の日付を示すシリアル値を返します。 |
NOW | NOW( ) | なし | 現在の時刻を示すシリアル 値 (00:00:01 = 0.00001) | 現在の時刻を示すシリアル値を返します。 |
DATE | DATE(文字列) | 日付文字列 【例】 "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 | 数値を四捨五入して指定された桁数にします。 |
ROUNDDOWN | ROUNDDOWN(値, 桁数) | 数値, 桁数 | 切り捨てした結果の値 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) | 指定された範囲のオブジェクトに含まれる空白以外のデータ個数を返します。 |
COUNTBLANK | COUNTBLANK(範囲) | 範囲 | データ個数 【例】差込フィールド(表) 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]キーを押すか、「表示」タブの「その他」グループにある「更新」をクリックします。
テキストボックスの改行と表示形式
テキストボックスに数値を入力するときは1行にしなければなりません。数値が(改行を含め)2行以上になると、数値ではなく文字列と判断されます。
計算式で参照に使われるテキストボックス内に改行記号があると、計算が行われません。結果を表示するテキストボックスには「#ERROR!」と表示されます。