kintone のテーブルで、小計に値引き・仕切を計算してみます。
計算式プラグイン、項目検証プラグイン、項目書式プラグインを使います。
※rex0220 計算式プラグイン テーブル内小計に値引き・仕切行を追加
テーブル内小計
小計行の次行に「値引き」行・「仕切」行を追加します。
計算式プラグインの設定
.js
// No
ROWNO(テーブル)+1
// 商品
LET(CNO,ROWNO(テーブル),
SWITCH(分類,
"小計",LET(PNO,NVL(LASTIF(AND(ROWNO(テーブル)<CNO,分類="小計"),ROWNO(テーブル)),-1),
FIRSTIF(AND(ROWNO(テーブル)<CNO,ROWNO(テーブル)>PNO,分類="概要"),商品)),
"値引き",IF(SUBTABLE(分類,CNO-1)="小計",SUBTABLE(商品,CNO-1)),
"仕切",IF(SUBTABLE(分類,CNO-1)="値引き",SUBTABLE(商品,CNO-1)),
商品)
)
// 数量
SWITCH(分類,
"明細",数量,
"値引き",1,
""
)
// 単価
IF(IN(分類,"明細","値引き"),単価,"")
// 金額
LET(CNO,ROWNO(テーブル),
SWITCH(分類,
"明細",数量*単価,
"小計",LET(PNO,NVL(LASTIF(AND(ROWNO(テーブル)<CNO,分類="小計"),ROWNO(テーブル)),-1),
SUMIF(AND(ROWNO(テーブル)<CNO,ROWNO(テーブル)>PNO,分類="明細"),金額)),
"値引き",数量*単価,
"仕切",IF(SUBTABLE(分類,CNO-2)="小計",SUBTABLE(金額,CNO-2))+IF(SUBTABLE(分類,CNO-1)="値引き",SUBTABLE(金額,CNO-1)),
"")
)
項目検証プラグインの設定
.js
// 商品の入力不可
IN(分類,"小計","値引き","仕切")
// 数量の入力不可
分類!="明細"
// 単価の入力不可
IN(分類,"概要","小計","仕切")
項目書式プラグインの設定
.js
// テーブル行の条件
IN(分類,"小計","値引き","仕切")