みなさまのお力をお借りしたく、投稿させていただきました。
現在、案件管理アプリを作成しています。
案件ごとに、売上日、支払予定日があり、売上予定日の1か月後、2か月後を自動計算して支払予定日に表示させたいです。
取引先ごとに支払予定日が異なるため、会社Aは1か月後、会社Bは2か月後など、会社ごとに結果で出したい月が異なります。
〇ヵ月後というのは取引先管理アプリから、何か月後に支払われるのかをルックアップ(支払サイト)で持ってきております。
例)
<レコード1>
案件名:XXXXXXX
取引先名:会社A
売上日:2025/4/30
支払サイト:1か月後
支払予定日:2025/5/31 ←ここを表示させたい
<レコード2>
案件名:ZZZZZZZ
取引先名:会社B
売上日:2025/4/30
支払サイト:2か月後
支払予定日:2025/6/30 ←ここを表示させたい
■試してみたこと:以下をベースに試してみたのですが、支払サイトが2か月後、売上予定日が2025/11/30の場合は2025/13/31、2025/12/31の場合は2026/1/31となってしまい、上手くいきません…
https://kintone-faq.cybozu.co.jp/hc/ja/articles/40851203699865-%E3%81%86%E3%82%8B%E3%81%86%E5%B9%B4%E3%82%92%E8%80%83%E6%85%AE%E3%81%97%E3%81%A6N%E3%83%B6%E6%9C%88%E5%BE%8C%E3%81%AE%E6%97%A5%E4%BB%98%E3%82%92%E8%A8%88%E7%AE%97%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95%E3%82%92%E6%95%99%E3%81%88%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84
[参考からの変更箇所]
文字列(1行)フィールド
フィールド名/フィールドコード:翌月表示
計算式:IF(日付="","",
IF(月=12,年+1&"年1",年&"年"&月+1)&"月"&
IF(AND(月=1,日>=29,うるう年判定="うるう年"),"29",
IF(AND(月=1,日>=29,うるう年判定="平年"),"28",
IF(AND(OR(月=3,月=5,月=8,月=10),日=31),"30",日)))
&"日")
↓
IF(売上日="","",
IF(月=12,年+1&"年1",年&"年"&月+支払サイト)&"月"&
IF(AND(月=1,日>=29,うるう年判定="うるう年"),"29",
IF(AND(月=1,日>=29,うるう年判定="平年"),"28",
IF(AND(OR(月=3,月=5,月=8,月=10),日=31),"30",日)))
&"日")
プラグインは使えないのですが、うるう年も考慮したものを作りたいです。なにかいい方法があれば教えていただると幸いです。よろしくお願いいたします。
ミュートしたユーザーの投稿です。
投稿を表示であるならば、このアプリを考える前に(事前に)
全顧客の「締め日・支払日・サイト」の調査されることをお勧めします
そして、いくつのパターンが必要なのか確認したほうがいいと思います😊
更に「顧客マスタ」
支払条件マスタを作り、売掛金が締め日から何日後に現金化されるのかの計算をして
「案件管理アプリ」に
ルックアップ で引っ張ってくるようにしないと大変ですよ
(アプリストアで探したらありそうだけど...)
工場長 さんは「建設業」だから 300超は 想像がつくけど
(前受金とか半金半手とかあると思うので...)
自分が営業(製造業)だった頃を思い出して計算してみたら93パターンありました
これ、1つのアプリの中、デフォルトの計算式だけで書くのは
至難の業💦💦じゃないかな~
数パターンだったらいける🦆かもしれないけど...
ミュートしたユーザーの投稿です。
投稿を表示ご提示のドキュメントは、"1ヶ月後"を求める計算例なので、👈🏻を”Nヶ月後”を計算するように変える必要があるのと、”13月”などと出ていることから、最終式だけでなくテンポラリの計算式も”日付”→"売上日"のフィールドコード修正が要ると思われます。
小生自身、この”うるう年考慮の日付計算を標準機能だけでやる”仕組みがよく分かっていませんが、興味があったので、生成AIさんに立式してもらってみました。
[フィールド構成]
①売上日(
売上日) ※{フィールド名}(フィールドコード)型:日付
②オフセット月(
オフセット月)型:数値
③年(
年)型:計算
式:
DATE_FORMAT(売上日,"YYYY","system")④新・年(
年_)💡型:計算
式:
年 + ROUNDDOWN((月 + オフセット月 - 1) / 12)⑤月(
月)型:計算
式:
DATE_FORMAT(売上日,"M","system")⑥新・月(
月_)💡型:計算
式:
(月 + オフセット月 - 1) - 12 * ROUNDDOWN((月 + オフセット月 - 1) / 12) +1⑦日(
日)型:計算
式:
DATE_FORMAT(売上日,"d","system")⑧新・日(
日_)💡型:計算
式:
IF( 日 >IF( 月_ = 2,
IF(うるう年判定 = "うるう年", 29, 28),
IF( OR(月_=4, 月_=6, 月_=9, 月_=11), 30, 31)
),
IF( 月_ = 2,
IF(うるう年判定 = "うるう年", 29, 28),
IF( OR(月_=4, 月_=6, 月_=9, 月_=11), 30, 31 )
),
日
)
⑨うるう年判定(
うるう年判定)型:自動計算付き文字列(1行)
式:
IF(OR( 年_/4 - ROUNDDOWN(年_/4) != 0,
AND( 年_/100 - ROUNDDOWN(年_/100) = 0,
年_/400 - ROUNDDOWN(年_/400) != 0)
), "平年", "うるう年"
)
⑩計算後日付(
計算後日付)型:自動計算付き文字列(1行)
式:
IF(売上日 = "", "", 年_ & "-" & 月_ & "-" & 日_ )※エディタの仕様上、&は全角にしています。(実際は半角)
で、添付のような動きになります。
👆🏻は、どうもうるう年またぎが入ると、2/29→2/28のように月末日を返す式になっているようです。
(ルールによっては、"キッチリ1年後としたとき、うるう年判定をして翌月月初日(3/1)にずらす"式を追加しないとかもです。)
ここで?なんですが、1か月後⇔2か月後で日のシフト有無があるのは何か理由があるのでしょうか。
別のルールがある場合は、その部分も式に入れこまなければなりませんね。
ご参考になれば幸いです。
ミュートしたユーザーの投稿です。
投稿を表示こんにちは。
基本機能だけでは、売上日から支払予定日を自動計算できても文字列扱いとなるため、
支払予定日をリマインダー設定などに使えないのでご注意ください。
支払予定日は「日付」としてリマインダーなどでも使いたいのではないかと思います。
無料プラグインで日付計算できるものもあるので、ここはプラグイン等を検討されることを
おすすめします。
ITS 日付計算プラグイン https://www.tis2010.jp/datecalc/
ミュートしたユーザーの投稿です。
投稿を表示支払条件ややこしいですよね…。弊社も支払条件マスタで管理していますが300超の支払条件が登録されています…
私の場合はkintone Café大阪Vol.26でもLT(ライトニングトーク)登壇でもお話しさせて頂いたのですが、kintoneの基本機能ではなかなか厳しく、Customineという連携サービス(プラグインではない)の日付を計算するという機能を駆使して支払予定日を算出しています。
なおスタンダードコースであればCustomineは1アプリスロット分であれば制限付で無料で使用できたりします。