式の記述方法

概要

「やること」や「条件」のパラメーターの多くには、式を記述することができます。

式を記述することで、カスタマイズ中のフィールドの値や、別のアクションで行った計算結果などを参照することが可能になります。

式を使える箇所

式が使えるはパラメーターの入力時で、以下のパラメーター種別になります。

式を使えない箇所

  • フィールド選択に限定されたパラメーター

  • 他のアクションの結果を参照するパラメーター

  • やること「JavaScriptを実行する

2種類の記述方法

式の記述方法は大きく2種類あります。

=式

文字列タイプのパラメーターでは、パラメーターを「=」から始めることにより、それ以降を式とみなします。Excel のセルに = 式を入力するような感覚です。

= 1 + 2

フィールドマッピングは各セット先フィールドに対してそれぞれこの形式で式を記述します。詳細は「フィールドマッピングの記述方法」をご覧ください。

${式}

複数行文字列やリッチテキストタイプのパラメーターでは、「=式」は使用できません。代わりに${}の中に式を埋め込みます。${}の外側は通常のテキストになります。

1 + 2 の結果は ${1 + 2} になります!

文字列タイプのパラメーターでも ${式}を使用することができます。ただし、=式と${式}を混在させることはできません。

使用可能な記述方法

パラメーター種別 使用可能な式の記述方法
文字列 =式, ${式}
複数行文字列 ${式}
リッチテキスト ${式}
フィールドマッピング =式

フィールドの値を参照する

式の中にフィールドコードを記述すると、そのフィールドの値を取得できます。以下の例では「数値_1」「数値_2」というフィールドの比率を計算します。

= 100 * 数値_1 / 数値_2

「どのレコードから参照するか」は文脈によります。基本的には「現在表示・編集している画面のレコード」を参照しますが、フィールドマッピングではマッピング元のレコードになる場合もあります。

文脈によらず、明示的に「現在の画面のレコード」を参照したい場合は「$$」を使用します。以下の例では、「数値_1」は明示的に「現在の画面のレコード」を参照するように指定し、「数値_2」は文脈に依存します。

= 100 * $$.数値_1 / 数値_2

さらに細かい属性値を参照する(*上級者向け)

フィールドの中には「ユーザー選択」の「ログイン名と表示名」のように、さらに細かい属性を持っているものがあります。これらの属性は、「.」で参照できます。以下の例は、レコード作成者のログイン名を参照します。どのフィールドタイプがどのような属性を持つかは、kintone の公式ドキュメントをご覧ください。

= 作成者.code

他のアクションの結果を参照する

式の中に $1 など、「$数字」を記述すると、その数値をアクションの番号とみなし、アクションの結果値を取得します。

= $12 + $13

この「$数字」を、${式}記法で記述する場合は、以下の例のようになります。

正:12番アクションの結果は${$12}です。

以下の記述だと、$12 の部分が式にならないので、思った結果になりません。

誤:12番アクションの結果は$12です。

文字列

式の中で固定の文字列を扱う場合は、ダブルクォーテーションで囲みます。

文字列に改行を含めたい場合は文字の代わりに「\n」と記述するとその部分が改行となります。以下の例は「東京、名古屋、大阪」を改行で区切った文字列を作成します。

= "東京\n名古屋\n大阪"

複数の文字列を結合する場合は、「&」で結合します。「+」ではないので注意してください。

= "今日の日付は" & 日付_1 & "です"

数値

数値に対しては四則演算(+-/*)と剰余(%)が使用可能です。

掛け算は「×」ではなくて半角の「*」になります。

割り算は「÷」ではなくて半角の「/」になります。

配列(*上級者向け)

フィールドに中には、チェックボックスやユーザー選択のように複数の値を持つものがあります。このようなフィールドは、値を「配列」と呼ばれる形式で持ちます。

配列の各要素には、JavaScript と同じように [] でアクセスできます。以下の例は「チェックボックス」フィールドで選択されている最初の値を取得します。

= チェックボックス[0]

以下の例は、”sample1”, “sample2” という2つの要素を持つ配列を作成します。

= ["sample1", "sample2"]

配列に対して属性指定を行った場合、結果は元の配列の各要素に対して、属性値を取り出した配列になります。以下の例は、ユーザー選択フィールドで選択されているすべてのユーザーのログイン名を配列で表した結果を返します。

= ユーザー選択.code

関数

一部組み込みの関数を使用することができます。

today, now

today() 関数は現在の日付、now() 関数は現在の日時を返します。

= "今日の日付は" & today() & "です。"

format

日付をフォーマットします。書式指定は moment.js の形式になります。

= format(日時_1, "YYYY/MM/DD HH:mm")

getdate

特定の日付を取得する」の関数版になります。

指定できる引数は「特定の日付を取得する」のドキュメントを参照してください。

= getdate("昨日")

round

四捨五入を行います。1つ目の引数に四捨五入したい値、2つ目に桁数を指定します。

桁数はゼロならば小数第一位を四捨五入して整数にします。正の値(N)ならば小数(N+1)位を四捨五入し、負の値(-N)ならば整数N位で四捨五入します。

${round(数値_1, 2)}

数値_1 フィールドの値に応じた結果の例
    数値_1 = 1.234 → 1.23
    数値_1 = 1.235 → 1.24
${round(x, -2)}

数値_1 フィールドの値に応じた結果の例
    数値_1 = 1234 → 1200
    数値_1 = 1254 → 1300

桁数は指定を省略することが可能で、省略した場合はゼロと同じになります。

= round(x)

abs

引数の絶対値を返します。

= abs(数値_1)

max, min

引数として配列を受け取って、max はその配列内の最大値、min は最小値を返します。数値を表さないものを指定すると NaN (数値ではないことを示すもの)が返ります。

以下の例は、フィールドコードが「Table」であるテーブルの「数値」列の最大値に1を足した値を求めます。

= max(Table.数値) + 1

以下の例は、フィールドコードが「Table」であるテーブルの「数値」列の最大値と最小値の比率を求めます。

= min(Table.数値) / max(Table.数値)

sum, avg

配列を受け取って、sum はその配列内の合計値、avg は相加平均値を返します。数値を表さないものを指定すると NaN (数値ではないことを示すもの)が返ります。

以下の例では、1番アクションが「全レコードを取得する」などレコードを取得するタイプのアクションだったとします。この1番アクションで取得したレコードの「数値」列の合計値を求めます。

= sum($1.数値)

配列内のある要素が空の場合、その値は加算されません。avg で平均を求める場合、空の要素分も割り算の分母として数えます。

以下の例で、”” は加算対象になりませんが、平均では分母にカウントされるため、sum は 12 を返し、avg は 12 /5 = 2.4 を返します。

= sum([1, 2, "", 4, 5])
= avg([1, 2, "", 4, 5])

使用例