Canbus. では、表計算で使用される一般的な関数をサポートしています。
多くの関数は代表的な表計算製品(Microsoft Excel や Google スプレッドシートなど)と同じように使える仕様になっていますが、関数名や引数の指定方法、細かな動作が異なる関数もあるため、注意してください。
関数名の大文字・小文字は区別されません。例えば、ROUNDDOWN 関数は ROUNDDOWN(123.45) のようにも、rounddown(123.45) や RoundDown(123.45) のようにも呼び出すことができます。以下の関数リストでは、関数名をすべて大文字で記載しています。
■使用できる計算記号
例)項目A=10 項目B=2 項目C=Can 項目D=bus.
記号 | 意味 | 使用例 | 結果 |
+ | 足し算 | 項目A + 項目B | 12 |
- | 引き算 | 項目A - 項目B | 8 |
* | 掛け算 | 項目A * 項目B | 20 |
/ | 割り算 | 項目A / 項目B | 5 |
^ | べき算 | 項目A^2 | 100 |
& | 文字列結合 | 項目C & 項目D | Canbus. |
■条件分岐させる
IF(論理式, TRUE, FALSE)
論理式の結果にあわせて、2つのパターンの値を返す関数です。論理式の結果を満たせばTRUEの内容を返し、結果が異なる場合はFALSE の内容を返します。例のように記述した場合、項目に「日本」が入力されていた場合は「国内」と返し、それ以外の場合は「国外」と返します。
例) IF(項目ID=="日本","国内","国外")
【使用できる論理式】
式 | 意味 |
A == B | AとBが等しい |
A != B | AとBが等しくない |
A <= B | AがB以下 |
A >= B | AがB以上 |
A < B | AがBより小さい |
A > B | AがBより大きい |
※A,B部分には項目IDや値を入力できます。
■IF関数と組み合わせて使う関数
AND(条件1, 条件2, 条件3, ...)
AND関数は「なおかつ」を表します。
条件はいくつでも入れることができます。
すべての条件が成立した場合のみ戻り値とし1 を返します。
OR(条件1, 条件2, 条件3, ...)
OR関数は「または」を表します。
AND関数と同様に条件はいくつでも入れることができます。
ANDと違いどれかの条件が成立すれば戻り値とし1を返します。
例 ) IF(OR(Text=="りんご",Text=="みかん",Text=="いちご")==1,"果物","その他”)
→Textが"りんご"or"みかん"or"いちご"ならば 1 を返し、
1 が返された場合は"果物"を、それ以外なら"その他"を返す。
※項目ID:Text
NOT(条件)
引数の論理式の結果を逆転した真偽値を返します。
条件が成立すれば正解とし1を返します。
例 ) IF (NOT(Text=="りんご")==1,"野菜","果物")
→Textが"りんご"でなければ 1 を返し、
1 が返された場合は"野菜"を、それ以外なら"果物"を返す。
※項目ID:Text
■合計する
SUM(数値,数値,.....)
SUM(数値)
設定した数値の合計を計算します。
※数値:数値が入力される項目IDや10などの値を設定できます。
表組み内の項目IDを指定すると、同じ表組み内の全行を合計します。
,(カンマ)で区切り、複数の項目IDや値を設定することもできます。
例 ) SUM(Number,Number_1,Number_2)
→ 10、50、100 の合計値を算出する。
※ Number→「数値」の項目ID
※ Number_1→「数値_1」の項目ID
※ Number_2→「数値_2」の項目ID
SUMIF(項目ID, 条件, 合計範囲)
指定した範囲内の条件に一致する項目の合計を計算します。
設定例)合計 [計算式] 項目 → SUMIF(Text,"もも",Number)
項目ID:果物 の項目 ID → Text
条件:もも
合計範囲:料金 の項目 ID → Number
果物 (Text) に "もも" と値が入力された [表組み] 項目の行の料金 (Number) を算出します。
RecordID.SUM(列番号)
レコード参照項目内の項目の合計値を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
例) Records.SUM(2)
→ レコード参照項目内の左から2列目 (「料金」) の項目の合計値を算出。
※ Records → 「レコード参照」の項目ID
GridID.SUM(列番号)
グリッド参照項目内の項目の合計値を返します。
※GridID:対象のグリッド参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
RecordID.SUMIF(条件対象となる列番号, "条件", 合計範囲となる列番号)
レコード参照項目内で指定した範囲内の条件に一致する数値の合計を計算します。
設定例)合計 [計算式] 項目 → Records.SUMIF( 1 ,"もも", 2 )
条件対象となる列番号:果物の名前が参照される列 → 1
条件:もも
合計範囲:ももの個数が参照される列 → 2
※ 数値の合計が計算されますので、合計範囲には「数値」の項目を設定してください。
果物の列 (1) に "もも" と値が入力された [レコード参照] 項目の、
2列目の合計値を算出します。
■平均値を計算する
AVG(数値,数値)
指定した複数の値の平均値を返します。
※数値:数値が入力される数値型の項目IDや 10 などの値を設定できます。
表組み内の項目IDを指定すると、同じ表組み内の全行を合計します。
,(カンマ)で区切り、複数の項目IDや値を設定することもできます。
例 ) AVG(Number,Number_1,Number_2)
→ 10、30、50 の平均値を算出する。
※ Number→「数値」の項目ID
※ Number_1→「数値_1」の項目ID
※ Number_2→「数値_2」の項目ID
RecordID.AVG(列番号)
レコード参照項目内の項目の平均値を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
GridID.AVG(列番号)
グリッド参照項目内の項目の平均値を返します。
※GridID:対象のグリッド参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
■指定した数値の最大値を返す
MAX(数値1, 数値2, 数値3, …)
引数に指定した数値の最大値を返します。
RecordID.MAX(列番号)
レコード参照項目内の指定した項目の最大値を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
GridID.MAX(列番号)
グリッド参照項目内の指定した項目の最大値を返します。
※GridID:対象のグリッド参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
■指定した数値の最小値を返す
MIN(数値1, 数値2, 数値3, …)
引数に指定した数値の最小値を返します。
RecordID.MIN(列番号)
レコード参照項目内の指定した項目の最小値を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
GridID.MIN(列番号)
グリッド参照項目内の指定した項目の最小値を返します。
※GridID:対象のグリッド参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
■個数をカウントする
COUNT(項目ID)
指定した範囲内(項目ID)に、数値が入っている項目の個数を返します。
表組み内の項目IDを設定することもできます。
COUNTA(項目ID)
指定した範囲内(項目ID)に、データが入っている項目の個数を返します。
表組み内の項目IDを設定することもできます。
RecordID.COUNTA(列番号)
レコード参照項目内の項目で、値が入力されている項目の個数を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
GridID.COUNTA(列番号)
グリッド参照項目内の項目で、値が入力されている項目の個数を返します。
※GridID:対象のグリッド編集項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
COUNTIF(範囲,条件)
指定した範囲内(項目ID)で、条件に一致する項目の個数を返します。
※範囲:表組みなどに配置した項目の項目IDを設定できます。
※条件:数値の場合1、文字列の場合は"あたい"のように値を入力します。
Record.COUNTIF(列番号,条件)
レコード参照項目内の項目で、条件に一致する項目の個数を返します。
※RecordID:対象のレコード参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のレコード参照項目の左から3列目の項目を対象とします。
※条件:数値の場合1、文字列の場合は"あたい"のように値を入力します。
GridID.COUNTIF(列番号,条件)
グリッド参照項目内の項目で、条件に一致する項目の個数を返します。
※GridID:対象のグリッド参照項目の項目IDを設定します。
※列番号:3を設定した場合、対象のグリッド参照項目の左から3列目の項目を対象とします。
※条件:数値の場合1、文字列の場合は"あたい"のように値を入力します。
■数値を端数処理する
ROUND(数値,桁数)
数値を四捨五入します。
※数値:四捨五入したい項目IDを設定します。10などの値を直接設定することもできます。
※桁数:0を設定した場合、少数第一位を四捨五入します。
例)0を設定:1.5→2 -1を設定:15→20
1を設定:1.56→1.6
ROUNDDOWN(数値,桁数)
数値を切り捨てます。
※数値:切り捨てたい項目IDを設定します。10などの値を直接設定することもできます。
※桁数:0を設定した場合、少数第一位を切り捨てます。
例)0を設定:1.5→1 -1を設定:15→10
1を設定:1.56→1.5
ROUNDUP(数値,桁数)
数値を切り上げます。
※数値:切り上げたい項目IDを設定します。10などの値を直接設定することもできます。
※桁数:0を設定した場合、少数第一位を切り上げます。
例)0を設定:1.4→2 -1を設定:14→20
1を設定:1.54→1.6
MOD(数値, 除数)
数値を除数で割った余り(剰余)が返されます。
例)MOD(123,4) ⇒ 3
■文字列を扱う
LEN(文字列)
指定した項目IDや値の文字列の長さを返します。
MID(文字列, 開始位置, 抜き出す文字数)
指定した項目の文字列から、一部の文字を抜き出します。
MID(項目ID,5,3) と設定した場合、項目IDに入力された文字列「計算式に使える関数」の内、5~7文字目の3文字「使える」が抜きだされます。
※文字列:項目IDや文字列を直接設定できます。
※開始位置:5を指定した場合、文字列の5文字目から抜き出しを開始します。
※抜き出す文字数:3を指定した場合、文字列から3文字抜き出します。
LEFT(文字 or 項目ID, 文字数)
文字 or 指定した項目値の左端から指定した文字数分を取り出すことができます。
※ [日付] [時刻] [日付と時刻] 項目はシリアル値で返されます。
[ユーザー選択] 項目では、選択したユーザーのログイン ID が返されます。
例)文字列項目に "Canbus" と入力されている場合
※ 文字列項目の項目 ID を「Text」と想定します。
LEFT(Text,3) ⇒ Can
ユーザー選択項目で "システナ太郎"(ログインID : systena)を選択した場合
※ ユーザー選択項目の項目 ID を「User」と想定します。
LEFT(User,3) ⇒ sys
RIGHT(文字 or 項目ID, 文字数)
文字 or 指定した項目値の右端から指定した文字数分を取り出すことができます。
※ [日付] [時刻] [日付と時刻] 項目はシリアル値で返されます。
[ユーザー選択] 項目では、選択したユーザーのログイン ID が返されます。
例)文字列項目に "Canbus" と入力されている場合
※ 文字列項目の項目 IDを「Text」と想定します。
RIGHT(Text,3) ⇒ bus
ユーザー選択項目で "システナ太郎"(ログインID : systena)を選択した場合
※ ユーザー選択項目の項目 ID を「User」と想定します。
RIGHT(User,3) ⇒ ena
FIND(部分文字列, 文字列 or 項目ID)
文字 or 指定した項目値の部分文字を検索して出現位置を数値で返します。
※ [日付] [時刻] [日付と時刻] 項目はシリアル値で返されます。
[ユーザー選択] 項目では、選択したユーザーのログイン ID が返されます。
例)文字列項目(項目ID : Text)に "Canbus" と入力されている場合を想定します。
FIND("n",Text) ⇒ 3
※ "Canbus" という文字で "n" は左から 3番目に位置するため "3" を返します。
■日時を処理する
NOW()
現在の日時を返します。
TODAY()
現在の日付を返します。
WEEKDAY(日付,数値)
指定した日付の曜日を返します。※1
数値に1を入力すると漢字表記(日~土)となり、
数値に2を入力すると数字表記(1~7)となります。
EO_DAY_MONTH(日付)
指定した日付の月の末日を返します。※1
NUMBER(日付・時刻型の項目ID)
文字列や日付・時刻の値を数値型に変換します。
AGE(日付)
指定した日付を生年月日として、年齢を返します。※1
DATE(文字列)
日付型の文字列から日付のシリアル値、または日付型を返します。
DATETIME(文字列)
日付と時刻型の文字列から日付と時刻のシリアル値、または日付と時刻型を返します。
TIME(文字列)
"hh:mm" 形式等の文字列から時刻のシリアル値、または日付と時刻型を返します。
DAY(文字列 or 日付 or 日付と時刻 or シリアル値)
日付型の値または、シリアル値から、日の値を返します。
MONTH(文字列 or 日付 or 日付と時刻 or シリアル値)
日付型の値または、シリアル値から、月 の値を返します。
YEAR(文字列 or 日付 or 日付と時刻 or シリアル値)
日付と文字列型の値または、シリアル値から、年 の値を返します。
DATE_ADD(日付,"設定値",数値)
設定値にあわせて、日付の項目に数値を加えたり、減らしたりします。※1
なお、引数は「”(ダブルクォーテション)」で囲う必要があります。
たとえば、項目の日付から3年分減らす場合は、DATE_ADD(項目ID,"Y",-3)となります。
"Y":年
"M":月
"D":日
"h":時間
"m":分
※1引数の日付は[yyyy/mm/dd]のように直接入力するか、
フォーム項目「日付」のIDを入力することで指定できます。
■業務フローに関連する関数
GET_WF_DATETIME("ログインID")
指定したログインIDのユーザが作業者に割り当てられた日時を返します。
指定したユーザが処理済の場合は、処理した日時を返します。
GET_WF_STATUS_INFO("プロセス名", "1" or "2" or "3" or "1+" or "3+")
第一引数で指定したプロセスを承認したユーザーのユーザー名 or 承認日 or ログインIDの何れかを第二引数で指定した値を基に返します。
また、第二引数に "1+"もしくは "3+"を指定した場合には、「承認予定」の情報を取得できます。
第二引数 "1" → 承認をしたユーザーのユーザー名を返します。
第二引数 "2" → 承認したプロセスの承認日をシリアル値または、日付と時刻型で返します。
第二引数 "3" → 承認したユーザーのログインIDを返します。
第二引数 "1+" → 承認したユーザーのユーザー名
(未承認の場合、回付先で指定されているユーザー名)を返します。
第二引数 "3+" → 承認したユーザーのログインID
(未承認の場合、回付先で指定されているログインID)を返します。
※プロセス名及び第二引数は ("") で囲う必要があります。
※未承認、かつ回付先のユーザーが指定されていないもしくは、
回付先のユーザーが複数指定されている場合、空白が返されます。
GET_WF_USER()
ログインユーザー(操作者) がルートの作業者に含まれている場合は、ログインIDを返します。含まれていない場合はブランクを返します。
※「:admin:」のような値で返却されます。
■その他の処理
ISBLANK(項目ID)
指定した項目が未入力(空白)である場合は1を、有効な値が入力されている場合は0を返します。
項目IDに指定できる項目は以下の通りです。
[文字列、数値、日付、時刻、日付と時刻、ラジオボタン、チェックボックス、プルダウン、計算式、ユーザー選択、組織選択]
ROW()
表組み内で、その行が何番目の行かを数値で返します。表組み内の計算式項目でのみ使用できます。
項目ID.CELL(posX, posY)
レコード参照、グリッド参照項目で使用可能となります。
posX, (横軸)posY (縦軸)は1以上となり、指定した項目値を返します。
USER("指定の引数")
指定した引数にあわせて、ログインユーザーのプロフィール情報を返します。
なお、引数は「”(ダブルクォーテション)」で囲う必要があります。
引数名: 対応している項目
LOGIN_ID: ログインID
FIRST_NAME_KANA: 名前([名]1行目)
FIRST_NAME: 名前([名]2行目)
LAST_NAME_KANA: 名前([姓]1行目)
LAST_NAME: 名前([姓]2行目)
DISPLAY_NAME: 名前(表示名)
ORGANIZATION: 組織
EMAIL: メールアドレス
PHONE_NUMBER: 連絡先(電話番号)
MOBILE: 連絡先(携帯電話)
EXTENSION_NUMBER: 連絡先(内線番号)
EMPLOYEE_ID: 社員番号
BIRTHDAY: 生年月日
HIRE_DATE: 入社日
MEMO: メモ