kintoneでサブテーブルに含まれる数値を全て合計する方法は、計算フィールドに用意されています。
ですが、各行に入力されたデータを条件とするなど一部の数値だけの合計を計算する方法はありません。
エクセルでいうSUMIFという関数の機能ですが、これをプラグイン「機能拡張スタンダードAll-In」を使って設定してみます。
使う機能は**「自動計算」**です。
サンプル用のアプリ内容
サンプルとして以下のようなアプリを作成しました。
- ドロップダウンフィールド**「品目」**
- 数値フィールド**「個数」**
- 数値フィールド**「金額」**
が配置されたテーブルを作成しました。
テーブル名は Table です。
その他のフィールドとして、
- 品目「サンプルA」の個数合計の入力先として、文字列フィールド**「サンプルA個数合計」**
- 品目「サンプルB」の個数合計の入力先として、数値フィールド**「サンプルB個数合計」**
- 金額の総計を入力するフィールドとして、数値フィールド**「金額総計(自動計算)」**
を設置。
またkintoneの計算フィールドを使用した合計金額の計算と比較するために、
- 計算フィールド**「金額総計(計算フィールド)」**
も設置しました。計算の設定内容は、
SUM(金額)
です。
プラグインの設定
「サンプルA」の個数合計を求める設定を行っていきます。
合計値の初期化
合計個数の入力先である「サンプルA個数合計」に 0 を代入します。
「サンプルA」の行だけ個数を加算する
条件と代入先や演算項などの計算内容を細かく設定します。
まず条件の設定です
条件判定値に Table.品目 を選択
判定方法に =(等しい) を選択
条件値の入力方法は (直接入力) で、条件値は 「サンプルA」 と入力。
これで、品目フィールドに「サンプルA」と入力されている行だけが自動計算対象となります。
次に計算内容の設定です
代入先に サンプルA個数合計 を選択。
演算項の1行目、演算項に サンプルA個数合計 を選択。
演算項の2行目、演算に + 、演算項に Table.個数 を選択。
計算はテーブル行を1行目から最後の行まで順番に、判定と演算を行います。
条件にマッチした行の個数だけが、サンプルA個数合計フィールドに加算されていきます。
結果として、サンプルAの個数が全て加算された数値が代入されます。
サンプルBの個数合計も同様の設定をおこないます。
「サンプルB個数合計」の初期化で空欄を選択していますが、空欄は数値計算に使用した場合は0とみなしますので、この内容でも問題ありません。
合計金額の設定
まず合計金額を代入するフィールドの初期化します。これは個数合計を計算するのと同じ手順です。
計算内容です。
条件判定は**(常に適用する)**を選択。
これで全ての行が条件にマッチしていることになります。
計算内容は、
代入先に 金額総計(自動計算) を選択。
演算項の1行目、演算項に 金額総計(自動計算) を選択。
演算項の2行目、演算に + 、演算項に Table.金額 を選択。
以上で全ての行の金額を合計した結果が、**金額総計(自動計算)**へ代入されます。
サンプルデータ
レコードを作成し、下記のようなデータを入力しました。
品目 | 個数 | 金額 |
---|---|---|
サンプルA | 10 | 1000 |
サンプルB | 12 | 24000 |
サンプルA | 5 | 500 |
サンプルB | ||
サンプルB | 8 | 16000 |
4行目のデータは個数と金額をあえて空欄にしています。
自動計算の結果がこちら。
サンプルAとサンプルBの個数が正しく求められています。
また金額も総計が入力されました。
kintoneの計算フィールドをみてみるとエラーが表示されています。
これは4行目の金額が空欄のままなので、合計金額が正しく計算できなかったのです。
プラグイン機能の自動計算では空欄は0とみなしますので、計算結果を求めることができています。
このプラグインについて
・キーワード検索
・自動計算・自動採番
・条件書式
・フィールド属性
・選択数制御
・レコード一括更新
・[自動計算によるレコード一括更新](kintoneプラグイン『機能拡張スタンダード All-In』を使って自動計算でのレコード一括更新を行う)