キンコミ kintone user community

みんなの投稿

2021/07/31 18:11

いつも大変お世話になっております。
今回も計算式に関する質問となります。

締め日を"20日"とした場合、例えば日付フィールドが「2021-07-31」となってれば「8月度」となるように計算設定したいのですが、私にはちょっと手に負えません。どのように計算させればよろしいでしょうか。

2件のコメント (新着順)

ジャッカルさん

添付のような感じでいかがでしょう。

日と年月は、DATE_FORMAT関数で取り出します。

翌月は、13月にならないよう以下手順を踏みます。

年月を100で割り小数点以下(月にあたる2桁)を切り捨て後、100で掛けた値を年月から引て月を取り出します。で、12なら年月に100足して11を引くことで翌年度に更新して1月にします。12以外なら単純に+1。

あとはIF文で20日締め日基準で年月または翌月を取り出せばいけると思います。

添付では、2020年12月21日を2021年01月と算出しているサンプルです。


ジャッカル
2021/08/01 08:45

詳しい手順までありがとうございます。

早速取り掛かってみたいと思います。

ジャッカル
2021/08/01 09:23

西村様
すみません。 上記の通り(どこか抜けてますかね。)式入れてみましたが、VALUEとなってしまいました。
ご確認、指摘の方よろしくお願いいたします。

ジャッカルさん

計算するので、文字列(1行)フィールドではなくて
計算フィールドでやってみてもらえませんか。

文字列(1行)フィールドは、文字列型
計算フィールドは数値型ですね
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/calculation_type.html

ジャッカル
2021/08/01 13:40

西村様
ごもっともでしたね。つい流れで全て文字列で用意してしまってました。スミマセンありがとうございました。

ジャッカル
2021/08/01 19:20

うーーむ。。。何故なんでしょうか。

計算フィールド配置し再度更新してみました結果です。

ジャッカルさん

まず年月に/(スラッシュ)が入ってるのが気にります。
それと数値型ならふつー右寄せになってるはずですが、左寄せになってますね。
おそらく文字列型なんだと思います。

#VALUE!とはなにか。

計算式で表示されるエラー
https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_error.html
計算する値の型や演算子が適切ではない場合に表示されます。
例1:数値と文字列を足す ←おそらくコレに相当することをやっておられるかと思います。

少なくとも今回の私のサンプルは文字列(1行)フィールドは使いません。

よくあることですが、現在のアプリを修正で対応しようとしてハマるケースは多いです。この程度であれば、新たにアプリを一から新規作成することをオススメします。

その際、文字列(1行)フィールドは使わず
計算フィールドを4個、日付フィールドを1個で作り直してはどうでしょう。

あとフィールド名とフィールドコードが不一致の場合無用なトラブルにはまりがち。

私のサンプルはフィールド名とフィールドコードを同じに設計していますので、
とりあえずは一旦同様に合わせてみることをオススメします。^^

DATE_FORMATで日を表示するフィールドと月を表示するフィールドを用意し、
最終的にIF関数で日が「20以上なら月+1」、「20未満なら月」みたいな感じのフィールドを作るのはどうでしょう?


ジャッカル
2021/08/01 08:45

そうやるんだろーなー。

みたいな感覚では認識してはいたのですが、なかなか辿りつけませんでした。自身の勉強の必要性を痛感しております。ありがとうございました。