トップ > みんなの投稿 > アイデア募集 > いつも大変お世話になっております。 今回も計... ジャッカル 2021/07/31 18:11 いつも大変お世話になっております。 今回も計算式に関する質問となります。 締め日を"20日"とした場合、例えば日付フィールドが「2021-07-31」となってれば「8月度」となるように計算設定したいのですが、私にはちょっと手に負えません。どのように計算させればよろしいでしょうか。 いつも大変お世話になっております。 今回も計算式に関する質問となります。 締め日を"20日"とした場合、例えば日付フィールドが「2021-07-31」となってれば「8月度」となるように計算設定したいのですが、私にはちょっと手に負えません。どのように計算させればよろしいでしょうか。 いいね 共有する 共有する X facebook LINE リンクをコピー トークにコメントする 2件のコメント (新着順) ミュートしたユーザーの投稿です。 投稿を表示 西村 志郎 製造業 2021/07/31 21:56 ジャッカルさん 添付のような感じでいかがでしょう。 日と年月は、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となってしまいました。 ご確認、指摘の方よろしくお願いいたします。 いいね 返信する ミュートしたユーザーの投稿です。 投稿を表示 西村 志郎 製造業 2021/08/01 13:27 ジャッカルさん 計算するので、文字列(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 うーーむ。。。何故なんでしょうか。 計算フィールド配置し再度更新してみました結果です。 いいね 返信する ミュートしたユーザーの投稿です。 投稿を表示 西村 志郎 製造業 2021/08/01 19:47 ジャッカルさん まず年月に/(スラッシュ)が入ってるのが気にります。 それと数値型ならふつー右寄せになってるはずですが、左寄せになってますね。 おそらく文字列型なんだと思います。 #VALUE!とはなにか。 計算式で表示されるエラー https://jp.cybozu.help/k/ja/user/app_settings/form/autocalc/autocalc_error.html 計算する値の型や演算子が適切ではない場合に表示されます。 例1:数値と文字列を足す ←おそらくコレに相当することをやっておられるかと思います。 少なくとも今回の私のサンプルは文字列(1行)フィールドは使いません。 よくあることですが、現在のアプリを修正で対応しようとしてハマるケースは多いです。この程度であれば、新たにアプリを一から新規作成することをオススメします。 その際、文字列(1行)フィールドは使わず 計算フィールドを4個、日付フィールドを1個で作り直してはどうでしょう。 あとフィールド名とフィールドコードが不一致の場合無用なトラブルにはまりがち。 私のサンプルはフィールド名とフィールドコードを同じに設計していますので、 とりあえずは一旦同様に合わせてみることをオススメします。^^ いいね 返信する ミュートしたユーザーの投稿です。 投稿を表示 きったん 製造業 2021/07/31 21:34 DATE_FORMATで日を表示するフィールドと月を表示するフィールドを用意し、 最終的にIF関数で日が「20以上なら月+1」、「20未満なら月」みたいな感じのフィールドを作るのはどうでしょう? いいね 返信する ミュートしたユーザーの投稿です。 投稿を表示 ジャッカル 2021/08/01 08:45 そうやるんだろーなー。 みたいな感覚では認識してはいたのですが、なかなか辿りつけませんでした。自身の勉強の必要性を痛感しております。ありがとうございました。 いいね 返信する
ミュートしたユーザーの投稿です。
投稿を表示ジャッカルさん
添付のような感じでいかがでしょう。
日と年月は、DATE_FORMAT関数で取り出します。
翌月は、13月にならないよう以下手順を踏みます。
年月を100で割り小数点以下(月にあたる2桁)を切り捨て後、100で掛けた値を年月から引て月を取り出します。で、12なら年月に100足して11を引くことで翌年度に更新して1月にします。12以外なら単純に+1。
あとはIF文で20日締め日基準で年月または翌月を取り出せばいけると思います。
添付では、2020年12月21日を2021年01月と算出しているサンプルです。
ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示ミュートしたユーザーの投稿です。
投稿を表示DATE_FORMATで日を表示するフィールドと月を表示するフィールドを用意し、
最終的にIF関数で日が「20以上なら月+1」、「20未満なら月」みたいな感じのフィールドを作るのはどうでしょう?
ミュートしたユーザーの投稿です。
投稿を表示