演算子と関数の一覧

計算式で利用できる演算子と関数を説明します。
計算する対象が数値か文字列かで、利用できる演算子と関数が異なります。

演算子/関数 説明
+ 数値の足し算を行います。
- 数値の引き算を行います。
単項演算子として、フィールドの値の正負を変換する目的にも使用できます。
* 数値の掛け算を行います。
/ 数値の割り算を行います。
^ 数値のべき算を行います。-100乗から100乗まで計算できます。
べき指数に小数を指定すると、整数に切り下げて計算されます。
例:3^2.5は3^2に変換され、計算結果は9になります。
& 文字列または数値を結合します。
数値型または文字列型のフィールドが参照されていて未入力の場合は、空文字列とみなして結合します。
= 文字列または数値の値が等しければ真、等しくなければ偽を返します。型が異なる比較は偽になります。
!= 「=」の比較結果を反転させたものになります。型が異なる比較は真になります。
<> !=と同様の結果になります。
< 数値で左の値より小さければ真、大きければ偽を返します。
<= 数値で左の値以下であれば真、以上であれば偽を返します。
> 数値で左の値より大きければ真、小さければ偽を返します。
>= 数値で左の値以上であれば真、以下であれば偽を返します。
SUM

数値の足し算を行います。次の書式で使用します。
SUM(数値1, 数値2, 数値3, ・・・)
「数値」には、「数値」フィールドのコード、値が数値になる計算式、または数値を指定します。

「+」演算子と同等のことができるほか、テーブル内にあるフィールドの値の和を計算できます。
YEN

計算結果を3桁区切りの「¥(円)」形式で表示します。また、指定した桁数で数値を四捨五入します。

YEN関数は、次の書式で使用します。
YEN(数値, 四捨五入の桁数)
「数値」には、「数値」フィールドのフィールドコード、値が数値になる計算式、または数値を指定します。
「桁数」には、四捨五入する小数点以下の桁数を指定します。負の数値を指定すると、正の桁で四捨五入されます。四捨五入の桁数は省略できません。
計算結果は文字列型になります。

※数値フィールドと計算フィールドでは、フィールドの設定画面で桁区切りの表示を設定できます。
数値に桁区切りを表示するには
DATE_FORMAT 日時の形式やタイムゾーンを変更します。
具体的な使用例は[DATE_FORMAT]使用例のページで説明しています。
IF 条件を指定し、その条件の真偽によって異なった値を返します。
AND 計算式で指定した条件が全て真となる時は真を返し、そうでなければ偽を返します。
32個までの引数を指定できます。
OR 計算式で指定した条件のいずれかが真となる時は真を返し、そうでなければ偽を返します。
32個までの引数を指定できます。
NOT 条件を反転させます。
ROUND 数値を四捨五入します。
ROUNDDOWN 数値を切り捨てます。
ROUNDUP 数値を切り上げます。

演算子の優先順位

  • 演算子は、優先度が高いものから順に、次の順で優先されます。
    • + , -(正符号および負符号の単項演算子:+1、-2など)
    • ^(べき算)
    • * , /(掛け算と割り算)
    • + , -(足し算と引き算)
    • &(文字列演算子)
    • =, !=, <>, <, >, <=, >=(比較演算子)

計算フィールドの計算結果

計算フィールドと文字列(1行)フィールドの計算式では、計算結果の扱いが異なります。
計算フィールドの計算結果が文字列になる場合は、数値に変換されて表示されます。

計算フィールドの計算結果
表示
数値型 数値として表示
文字列型 数値に変換されて表示
※数値に変換できない場合、レコード入力時に表示されるエラーが表示されます。
論理型 真 ならば 1 、偽 ならば 0 を表示

数値型および論理型の計算結果は、計算フィールドも文字列(1行)フィールドの計算式も同じ表示です。

未入力フィールドの計算

未入力フィールドは「0」や「(空文字列)」として計算されます。

  • 未入力の数値型のフィールドは、「0」とみなされます。ただし、「&」演算子では「""」(空の文字列)とみなされます。

  • 未入力の文字列型のフィールドは、「""」(空の文字列)とみなされます。

  • IF関数では、「数値フィールド=0」と指定すると、数値フィールドに「0」が入力されているときだけではなく、数値フィールドが未入力のときも真になります。

  • 「数値フィールド=""」と指定すると、「未入力かどうか」という判定になります。「0」が入力されているときは偽、未入力のときは真、となります。

  • 「0」を表示する代わりに「何も表示しない(空欄)」とする方法
    計算結果を「""」としてください。

    • 例:IF(個数=0, "", 単価*個数)
      個数が0のときは、0と表示せずに空欄になります。個数が0ではないときは、掛け算した金額を表示します。

数値と計算の値

「数値」フィールドと「計算」フィールドの値は、桁数に応じて丸められる場合があります。丸められる桁数や丸めの方式は、設定で変更可能です。
詳細は次のページで説明しています。
四捨五入、切り捨て、切り上げするときの設定の使い分け
数値の有効桁数と丸めかたを設定する

付録:演算子と関数の使用例

演算子/関数 計算結果
+ 3+2 5
- 3-2 1
* 3*2 6
/ 3/2 1.5
^ 3^2 9
& 佐藤&昇 佐藤昇
= IF(A=100,B,C) Aに100、Bに10、Cに5を入れた場合:10
!= IF(A!=100,B,C) Aに100、Bに10、Cに5を入れた場合:5
<> IF(A<>100,B,C) Aに100、Bに10、Cに5を入れた場合:5
< IF(A<100,B,C) Aに100、Bに10、Cに5を入れた場合:5
<= IF(A<=100,B,C) Aに100、Bに10、Cに5を入れた場合:10
> IF(A>100,B,C) Aに100、Bに10、Cに5を入れた場合:5
>= IF(A>=100,B,C) Aに100、Bに10、Cに5を入れた場合:10
SUM SUM(1, 2, 3) 6
YEN YEN(1100.5, 0) \1,101
DATE_FORMAT DATE_FORMAT(1522972800, "YYYY年M月d日", "system") 2018年4月6日
IF IF(A<100,B,C) Aの値が90の場合は結果がB、Aの値が110の場合は結果がC
AND IF(AND(A>10,B>=10),"1","0") AとBの値が10の場合:0
OR IF(OR(A>10,B>=10),"1","0") AとBの値が10の場合:1
NOT IF(NOT(A>10),"1","0") Aの値が10の場合:1
ROUND ROUND(A * 1.1) Aの値が8,875の場合:9,763
ROUNDDOWN ROUNDDOWN(A * 1.1) Aの値が8,875の場合:9,762
ROUNDUP ROUNDDOWN(A * 1.1) Aの値が8,875の場合:9,763

数値の計算

「計算」フィールド、または「文字列(1行)」フィールドを使用して、数値の計算を行います。
「フィールドA」は、フィールドコードが「フィールドA」であるフィールドの値を表し、「フィールドB」は、フィールドコードが「フィールドB」であるフィールドの値を表します。

和を計算:フィールドA + フィールドB

フィールドAが「1」、フィールドBが「2」の場合、計算結果は「3」となります。
( )を使った計算:(フィールドA - 1000) * 2

フィールドAが「1,500」の場合、計算結果は「1,000」となります。
* と + の組み合わせ:フィールドA*5 + フィールドB*10

フィールドAが「20」、フィールドBが「10」の場合、計算結果は「200」となります。

テーブルの合計

フォームに次のようなテーブルがあるとします。

商品名 単価 個数 小計
USBメモリー 1,500 1 1,500
ボールペン 70 5 350
LANケーブル 350 2 700
モジュールタップ 150 1 150
A5ノート 50 10 500
      (合計を計算)

「小計」フィールドのフィールドコードが「フィールドA」の場合、次の式で、小計の合計を計算できます。なお、単価や個数に空欄がある場合でも計算が可能です。

計算式:SUM(フィールドA)

計算結果は「3,200」になります。

時間の計算

「計算」フィールドを使用して、次の計算ができます。

  • 日時の差分の計算
  • 日時と時間の足し算、および引き算

計算式には、時間を秒単位で入力します。たとえば、1時間は「3600」、または「60*60*1」のように入力します。1日であれば、「24*60*60*1」のように入力します。

秒単位で計算:フィールドA + (60 * 60 * 1)

フィールドAが「2014-01-01 09:00」の場合、計算結果は「2014-01-01 10:00」になります。
フィールドの表示形式を「日時(例:2012-08-06 2:03)」に設定している場合の計算結果です。
表示形式を時間で設定:フィールドA - フィールドB

フィールドAが「2014-01-01 09:00」、フィールドBが「2014-01-01 08:00」の場合、計算結果は「1時間0分」になります。
フィールドの表示形式を「時間(例:26時間3分)」に設定している場合の計算結果です。

文字列の操作

「文字列(1行)」フィールドを使用して、文字列の結合やYEN関数の表示を行います。

ほかのフィールドの値を表示:フィールドA

フィールドAが「佐藤」の場合、計算結果は「佐藤」になります。
文字列の結合:フィールドA & " " & フィールドB

フィールドAが「佐藤」、フィールドBが「昇」の場合、計算結果は「佐藤 昇」になります。
YEN関数の利用例:YEN(フィールドA * 1.1, 0)

フィールドAが「8,875」の場合、計算結果は「¥9,763」になります。
「8,875 × 1.1 = 9762.5」を四捨五入した値です。