お世話になっております。
エクセル関数でいうと下記の良ような計算式を検討しています。
kintoneで計算を行う事は可能でしょうか?
ご教授いただければ幸いです。
よろしくお願いいたします。
=IF(A1=“青山”,ROUNDDOWN(B1/C1,-2),ROUNDDOWN(B1/C1,0))
フィールドB ÷ フィールドC
例) 10,000 ÷ 2.22%
フィールドAが青山の場合、450,400
フィールドAが青山以外の場合、450,450と計算する。
フィールドB は整数
フィールドC は小数(%)
青山昌司様
お世話になっております。
cstapの江田です。
kintoneの計算フィールドには、条件分岐機能はないようです。
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_format.html
JavaScriptカスタマイズで計算するのがよいかと思います。
if文などを用いて実装できます。
江田様
いつもお世話になっております。
ご返信ありがとうございます。
下記のサイトを参考にしてみたのですが
どうしていいのかわからずで・・・。
何か参考になるものやアドバイスがございましたらご教授いただければ幸いです。
https://qiita.com/nagito25/items/0293bc317067d9e6c560
(function () {
“use strict”;
kintone.events.on([‘app.record.create.show’,‘app.record.edit.show’], function (event){
var record = event.record;
var dropValue = record[“A”].value;
var fieldBValue = Number(record[“B”].value);
var fieldCValue = Number(record[“C”].value);
var fieldDValue = fieldCValue / fieldBValue;
if (dropValue == “青山”){
青山昌司様
お世話になっております。
以下のような記述で実装できるかと思います。
(function() {
"use strict";
kintone.events.on([
'app.record.create.change.フィールドA',
'app.record.create.change.フィールドB',
'app.record.create.change.フィールドC',
'app.record.edit.change.フィールドA',
'app.record.edit.change.フィールドB',
'app.record.edit.change.フィールドC',
], function(event){
var raw = event.record.フィールドB.value / event.record.フィールドC.value * 100;
event.record.フィールドD.value = (event.record.フィールドA.value === '青山') ? Math.floor(raw/100)*100 : Math.floor(raw);
return event;
});
})();
青山さん、江田さん
横から失礼します。
有償になりますが、計算式プラグイン を使うと Excel 関数のような記述で計算が可能です。
下記の計算式で、PC版 追加・編集画面、一覧編集画面およびスマホ版 追加・編集画面で自動計算されます。
IF(フィールドA=“青山”,
FLOOR(フィールドB/フィールドC*100,-2),
FLOOR(フィールドB/フィールドC*100,0))
※FLOOR関数は、計算式プラグインの切り下げ関数です。
ご参考になれば。
江田様
お世話になっております。
ご返信ありがとうございました。
参考にして下記の様に実装し確認できました。
因みに”A”はドロップダウンですが、コピーし”E”というのも作ったのですが、
AではなくEに置き動かなくなるのですが理由がわかりません。
ご教授いただけると助かります。
よろしくお願いいたします。
‘app.record.create.change.A’,
‘app.record.create.change.F’,
‘app.record.create.change.J’,
‘app.record.edit.change.A’,
‘app.record.edit.change.F’,
‘app.record.edit.change.J’,
], function(event){
var raw = event.record.F.value / event.record.J.value * 100;
if (event.record.A.value === “青山” ){
event.record.H.value = (Math.floor(raw/100)*100);
}else{
event.record.H.value = (Math.floor(raw));
return event;
rex0220さま
お世話になっております。
プラグインではお世話になっております。
計算式プラグインも合わせて検討させていただきます。
お世話になっております。
追加の質問になります。
下記のタイミングで計算をさせているのですが、
販売方法(ドロップダウン)、料率(数値)共に変更が可能なのですが
現金金額税抜(計算)が変更になった場合に計算されません。
このタイミングで再度販売方法を選択しなおすと計算されるのですが
デバックにもエラーが出ずです。
原因がわかりますでしょうか?
何卒ご教示いただければ幸いでございます。
よろしくお願いいたします。
kintone.events.on([
‘app.record.create.change.販売方法’,
‘app.record.create.change.料率’,
‘app.record.create.change.現金金額税抜’,
‘app.record.edit.change.販売方法’,
‘app.record.edit.change.料率’,
‘app.record.edit.change.現金金額税抜’,
こんにちは。
計算フィールドはフィールド値変更時イベントが発生しないので、それが原因ではないでしょうか。
フィールドコードに指定可能なフィールド
https://developer.cybozu.io/hc/ja/articles/201941984#step3
asageさま
お世話になっております。
コメント頂きありがとうございます。
指定可能なフィールド確認させていただきました。
先ほど、「現金金額税抜(計算)」と説明していましたが
正しくは「現金金額税抜(数値)」でした。
「現金金額税抜(数値)」にjsで自動計算させた数値を入れていたのですが、
計算フィールド扱いという事なのでしょうか?
新しく文字フィールドを追加し、自動計算で「現金金額税抜(数値)」を指定したところ
新しく追加した文字フィールドのチェンジで計算されるようになりました。
数値フィールドだったらchangeイベントは動くと思います。(計算フィールド扱いでは無い)
文字列フィールドの場合は自動計算でもchangeイベントは動きますが、計算フィールドだと駄目みたいですね。
asageさま
お世話になっております。
コメント頂きありがとうございます。
なるほどですね。
計算フィールド扱いではないとの事で再度確認してみたいと思います。
どうしてもだめなら文字フィールドで検討してみます。
ありがとうございました。
system
(system)
クローズされました:
2025 年 5 月 29 日午前 4:39
13
このトピックはベストアンサーに選ばれた返信から 3 日が経過したので自動的にクローズされました。新たに返信することはできません。