計算


計算項目について


計算項目は、他の数値項目の値を参照して、自動で計算を行い結果を表示する項目になります。

計算項目は、項目定義時に計算式を定義しておくことで
計算式に含まれる数値項目が設定されたときに自動で計算が行われます。

追加手順


例として、以下のように商品の売上を計算する項目を考えてみます。

項目名 項目種類
価格 数値
数量 数値
売上 計算

以下のように価格と、数量の項目を数値項目(整数)として追加します。
「計算」をクリックします。

pigeon-cloud_doc_calc2

以下のように計算式に数式を入力し、必要であれば「追加設定オプション」を
設定後、「追加する」を押下します。

※「項目名」については、項目名の前後に『全角スペース』/『半角スペース』を含めた場合 自動削除されます。
※「項目名」の入力文字の中に全角スペースを含めた場合は、半角スペースへ自動変換されます。

pigeon-cloud_doc_calc3


pigeon-cloud_doc_calc6

「追加設定オプション」については、以下の通り。

pigeon-cloud_doc_calc1


pigeon-cloud_doc_calc7

テーブルを保存し、データを登録します。

pigeon-cloud_doc_calc4

「売上」が自動で計算されます。

pigeon-cloud_doc_calc5

計算項目の数式について


基本的な数式のルールは下記となります。

  • 参照する項目名を{}で囲む
  • 他のテーブルを参照する場合は::をつける
  • 四則演算は+-*/の記号を使います。

例えば、「売上」という計算項目で「価格」と「数量」から計算を行う場合、以下のような数式となります。

{価格}*{数量}

数式で関数を使う場合


関数を使う場合は例えば以下のような式となります。

ROUND({価格}*1.1)*{数量}

計算式で使用可能な関数は下記となります。

名前 説明 設定例 備考
ABS() 絶対値を返します - -
ACOS() アークコサインを返します - -
ASIN() アークサインを返します - -
ATAN() アークタンジェントを返します - -
ATAN2(), ATAN() 2 つの引数のアークタンジェントを返します - -
CEIL() 引数以上のもっとも小さな整数値を返します - -
CEILING() 引数以上のもっとも小さな整数値を返します - -
CONV() 数値を異なる基数間で変換します - -
COS() コサインを返します - -
COT() コタンジェントを返します - -
CRC32() 巡回冗長検査値を計算します - -
DEGREES() ラジアンを角度に変換します - -
EXP() 累乗します - -
FLOOR() 引数以下のもっとも大きな整数値を返します - -
LN() 引数の自然対数を返します - -
LOG() 最初の引数の自然対数を返します - -
LOG10() 引数の底 10 の対数を返します - -
LOG2() 引数の底 2 の対数を返します - -
MOD() 余りを返します - -
PI() pi の値を返します - -
POW() 指定した指数で累乗された引数を返します - -
POWER() 指定した指数で累乗された引数を返します - -
RADIANS() ラジアンに変換された引数を返します - -
RAND() ランダムな浮動小数点値を返します - -
ROUND() 引数を四捨五入します - -
SIGN() 引数の符号を返します - -
SIN() 引数のサインを返します - -
SQRT() 引数の平方根を返します - -
TAN() 引数のタンジェントを返します - -
TRUNCATE() 指定された小数点以下の桁数に切り捨てます - -
MAX() 最大値の数値、日付けの値を返します - -
MIN() 最小値の数値、日付けの値を返します - -
LEFT() 左部分の値を取得します - -
RIGHT() 右部分の値を取得します - -
REPLACE() 値の置換を行います - -
SUBSTRING() 値の部分抽出を行います - -
LEAST() 最小値を取得します - -
GREATEST() 最大値を取得します - -
CONCAT() 文字列を結合します - -
DATE_ADD() 日付値に時間値 (間隔) を加算します DATE_ADD(current_date(),‘day’,4) 設定例では現在日付けより4日加算した日付け情報を取得します
DATE_SUB() 日付から時間値 (間隔) を引きます DATE_SUB(current_date(),‘month’,4) 設定例では現在日付けより4カ月減算した日付け情報を取得します
DATEDIFF() 2 つの日付の差を求めます DATEDIFF(CURRENT_DATE(),“2021-07-01”) 設定例では現在日付けと2021年7月1日との日付けの差情報を取得します
CURRENT_DATE() 現在日付けを取得します -
IF() 論理式の条件(IF文)によって処理を分岐します。IF条件 (第一引数がtrueの場合第2引数、falseの場合第3引数を表示する) IF({項目名}=1,10,100) 設定例では項目名が1の時10を、項目名が1ではない時100を取得します
LPAD() 指定した桁数になるまで文字列の左側に文字列を埋め込みます。 LPAD(‘abc’, 6, ‘XYZ’) 設定例では元の文字列を「abc」で指定し6桁の文字列で且つ埋め込む文字列を「XYZ」としているので、「ZYZabc」を取得します

他テーブルの数値を使う場合


例えば、以下のように他のテーブルを参照している構成で考えてみます。

テーブル 項目名 項目種類
商品テーブル 商品名 文字列(一行)
商品テーブル 価格 数値
売上テーブル 商品 他テーブル参照
※商品テーブルの商品名を参照
売上テーブル 数量 数値
売上テーブル 売上 計算

このような場合、「売上」項目上の数式では以下のように、「商品」項目を使って商品テーブルの価格を参照します。

{商品::価格}*{数量}