みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
教えてください。
FM13
ウインドウズ10
利用です。
[納品日] [サービス開始日] [請求開始日] [分割] [請求終了日] の4つのフィールドがあります。
[納品日]・・・・・・・・納品した年月日を入力しています。
[サービス開始日]・・・・納品日に入力した日付の翌月1日が自動で入力になります。
[請求開始日]・・・・・・サービス開始日の末日になります。
[分割回数]・・・・・・・分割の回数
[請求終了日]・・・・・・請求開始日の当月もしくは、分割回数分延びるようになっています。
現在下記の式で
Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) )
請求終了日を分割回数分延長するようにしているので、納品日が2月になるとどうしても1月ずれてしまうのですが
何か良い方法はありませんでしょうか。
請求終了日の「日」は請求開始日の「日」なのですか?
もしそうでしたら、
例えば、
2月30日
とか、
4月31日
になった場合のルールーが必要です。
Offline
チポ様ありがとうございます。
仰せの通り、請求終了日の日は請求開始日の日になっています。
特に意味はないのですが、今のところそのようにしております。
すみません。その場合のルールとはどのようにすれば良いでしょうか。
宜しくお願いします。
請求終了日の「日」は請求開始日の「日」なのですか?
もしそうでしたら、
例えば、
2月30日
とか、
4月31日
になった場合のルールーが必要です。
2月30日
とか、
4月31日
こうなった場合、
2/28 (閏年は2/29)か 3/1
4/30 か 5/1
どちらかだと思いますが、
どちらにするのかをルールとして決めてください。
ということです。
Offline
ある月の末日を求める時は、翌月の1日から1日引くことで正しい末日を求めるのが早いかと思います。
質問に書かれていた式を修正すると、こんな感じでしょうか?
Date ( Month ( 請求開始日 )+(分割回数) ; 1 ; Year ( 請求開始日 ) ) -1
Offline
チポさん/hajimeさん、アドバイスありがとうございます。
チポさん、すみません。
ルールの設定方法がわからないのですが、どのような計算式になるのか、教えてもらえませんでしょうか。
お願い致します。
2月30日
とか、
4月31日
こうなった場合、2/28 (閏年は2/29)か 3/1
4/30 か 5/1
どちらかだと思いますが、
どちらにするのかをルールとして決めてください。ということです。
いやーー
ルールを決めるのは、かっぱさんサイドで決めないと。
請求終了日が計算で
4月31日(実際には無い日付です)
となった場合、
その日付を
4月30日(月末)
か
5月1日
にするのかのルールーを決めれば計算式はできますよね。
Offline
チポさん
ありがとうございます。
4月31日になった場合は、その月末4月30日にしたいのですが、計算式と設定方法がわからないのですが、
ご教授いただけるでしょうか。
いやーー
ルールを決めるのは、かっぱさんサイドで決めないと。請求終了日が計算で
4月31日(実際には無い日付です)
となった場合、
その日付を
4月30日(月末)
か
5月1日
にするのかのルールーを決めれば計算式はできますよね。
そういうルールなら、
Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) )
これを元にして、
求めた日付の「日」が、請求開始日の「日」より小さければ、
それは月をまたいだことになりますから、前月月末に戻す。
という式です。
Let ( [ $dt = Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) ) ;
$dy = Day ( $dt ) ] ;
$dt - $dy * ($dy < Day ( 請求開始日 ) ) )
内容を解析してください。
Offline
チポさん
ありがとうございます。教えて頂いた式で問題なく動作したのですが、
教えていただきました式と元々設定していました式の2つを組み合わせることができなく悩んでました。
元々入っていた式です。
------
Let (
d = Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) ) ;
Case (not IsEmpty ( 解約日 ) ; Date ( Month ( 解約日 ) +1 ; Day ( 解約日 ) ; Year ( 解約日 ));
Case ( not IsEmpty ( 品名 ) and not IsEmpty ( 開始日) ;
Case (
サービス商品名 = "初期費用 千大01" ; d ;
サービス商品名 = "初期費用 千大02" ; d ;
サービス商品名 = "初期費用 千大03" ; d ;
サービス商品名 = "初期費用 千大04" ; d ;
サービス商品名 = "初期費用 千大05" ; d ;
""
)
)) )
-----------------
この式とご教授頂いた式を組み合わせて入れたいのですが、どうしてもできません。
再度ご教授いただけますでしょうか。
宜しくお願いします。
そういうルールなら、
Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) )
これを元にして、求めた日付の「日」が、請求開始日の「日」より小さければ、
それは月をまたいだことになりますから、前月月末に戻す。
という式です。Let ( [ $dt = Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) ) ;
$dy = Day ( $dt ) ] ;
$dt - $dy * ($dy < Day ( 請求開始日 ) ) )内容を解析してください。
かっぱさんの式の
d
が私の式になるようにすればいいのでは。
Offline
チポさん
重ね重ねすみません。
チポさんの式に置き換えているのですが、引数がたりません。などが出て、うまく置き換えることができません。
置き換える式を教えていただけないでしょうか。
すみませんが宜しくお願いします。
かっぱさんの式の
d
が私の式になるようにすればいいのでは。
Let ( [ dt = Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) ) ;
dy = Day ( dt ) ;
d = dt - dy * ( dy < Day ( 請求開始日 ) ) ] ;
Case・・・・・
これでいいのでは。
Last edited by チポ (2016-09-09 08:46:29)
Offline
チポさん
できました
何から何までありがとうございました。
Let ( [ dt = Date ( Month ( 請求開始日 )+(分割回数)-1 ; Day ( 請求開始日 ) ; Year ( 請求開始日 ) ) ;
dy = Day ( dt ) ;
d = dt - dy * ( dy < Day ( 請求開始日 ) ) ] ;
Case・・・・・これでいいのでは。
Pages: 1
[ Generated in 0.006 seconds, 9 queries executed - Memory usage: 545.54 KiB (Peak: 566.08 KiB) ]