みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
年が変わっても当月中に検索したら1か月前を表示する方法の計算式を教えて下さい。
Let (
YM = Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) ) - 2 ;
Div ( YM ; 12 ) & "/" & ( Mod ( YM ; 12 ) + 1) & "/*"
)
であってますよね?
応用が利かないもので少し教えて頂きたい個所が2つありまして
Month ( Get ( 日付 ) ) - 2 ← "- 2"の意味と
( Mod ( YM ; 12 ) + 1) ← "+ 1"の意味を教えて欲しいです。
ちなみに2カ月前を表示させたかったら
Let (
YM = Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) ) - 2 ;
Div ( YM ; 12 ) & "/" & ( Mod ( YM ; 12 )) & "/*"
)
これであってますでしょうか?
Last edited by coochan (2017-10-09 17:04:14)
OS:[win10]
FileMaker Ver:[Pro11]
FileMaker Server 11も利用
現在 コールシステムでファイルメーカーを利用してます。
Offline
下記の方が良いかと...。
Let ([
D = Get ( 日付 )
;PreM= Date( Month ( D )-1 ; Day ( D ) ; Year ( D ) )
];
Year ( PreM ) & "/" & Month ( PreM ) & "/*"
)
2ヶ月前
Let ([
D = Get ( 日付 )
;PreM= Date( Month ( D )-2 ; Day ( D ) ; Year ( D ) )
];
Year ( PreM ) & "/" & Month ( PreM ) & "/*"
)
Offline
Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) ) - 1
は、仮想の西暦0年1月からの満の月数が求められます。月は1月からはじまりますのでその補正のために1を減じます。(この数字を計算するフィールドを作っておくと、○ヶ月前の検索など楽ですよ)
ですから、前月は、さらに1を減じます。
この数字を年月に戻すためには、Div ( YM ; 12 ) で年が求められ、Mod ( YM ; 12 ) で0から始まる月になりますので1を加えます。
2ヶ月前は、
Let (
YM = Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) ) - 3 ;
Div ( YM ; 12 ) & "/" & ( Mod ( YM ; 12 ) + 1 ) & "/*"
)
です。
qb_dpさんの式でも概ねはいいのですが、3月31日や4月30日などで誤計算になりますので、
PreM= Date( Month ( D )-1 ; 1 ; Year ( D ) )
としておいた方が無難でしょう。
ちなみに、前月ならば、
Year ( Get ( 日付 ) - Day ( Get ( 日付 ) ) & "/" & Month ( Get ( 日付 ) - Day ( Get ( 日付 ) ) & "/*"
だけでも OK です。
Last edited by Shin (2017-10-09 18:15:42)
Offline
qb_dp様 Shin様
ありがとうございます!!
とても分かりやすい説明で私にも理解出来ました!!!
OS:[win10]
FileMaker Ver:[Pro11]
FileMaker Server 11も利用
現在 コールシステムでファイルメーカーを利用してます。
Offline
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 560.17 KiB (Peak: 588.96 KiB) ]