みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
保存期限を1年として保存期間が切れる1か月前の人(翌月に切れる人)を条件付き書式で色付けしたいです。
レコードに更新数と保存期間があり、更新数を増やすと自動で保存期間が1年延長するようにしています。
保存期間が切れている人、今月に切れる人は自力で色を変えることができましたが、翌月切れる場合が分からず困っています。
日付関係なく、翌月に切れる人全員を対象にしたい場合、どのような計算式を当てはめればよいのでしょうか。
年月を表す値で比較すればいいですが、
YYYYMM
のような値だと年をまたぐ場合面倒ですから、
Y*12+M
とすれば翌月は、これに1を加えればいいですよね。
Offline
Let (
YM0 = Year ( 登録日 ) * 12 + Month ( 登録日 ) + 更新数 * 12 + 12 ;
YM0 - Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) )
)
この結果が、マイナスになれば保存期間が切れている人、0 ならば今月に切れる人、正数は残りの保証期間になります。
Last edited by Shin (2023-12-25 18:34:11)
Offline
返信ありがとうございます。
ちなみに現在Pro18を使用しております。
shin様
試してみたのですが関数が見つかりませんとの表示が出て上手くできませんでした。
正数は残りの保証期間とのことですが、翌月切れる人を知りたいのであれば
lwr (
YM0 = Year ( 登録日 ) * 12 + Month ( 登録日 ) + 更新数 * 12 + 12 ;
YM0 - Year ( Get ( 日付 ) ) * 12 + Month ( Get ( 日付 ) )
) = 1
で保証期間が残り1か月ということなのでしょうか。
当たり前のような質問になってしまっていたら申し訳ございません。
チポ様
テーブルが見つかりませんとの表示が出て上手くできませんでした、、
関数が見つかりません になるのですか?おかしいですよね
判断はその通りです
最初、タイプミスしていたのですぐ直したのですが、間に合わなかったのでしょうね。訂正してあります。
Last edited by Shin (2023-12-26 08:56:57)
Offline
>レコードに更新数と保存期間があり、更新数を増やすと自動で保存期間が1年延長するようにしています。
保存期間はデフォルトで1年、更新するごとに+1年、であればこれは数値(年数)ですよね?
>保存期限を1年として保存期間が切れる
逆ではないですか。期限は日付(切れる日、期間の限界)であって、「保存期間」が1年であれば「(登録日から1年間保存するので1年後が)保存期限」
>関数が見つかりません
タイプミスしてます。
ご返信ありがとうございます。
shin様
himadanee様のご指摘通りタイプミスしておりました。
直してみたのですがうまくいきませんでした、、、
himadanee様
>レコードに更新数と保存期間があり、更新数を増やすと自動で保存期間が1年延長するようにしています。
保存期間はデフォルトで1年、更新するごとに+1年、であればこれは数値(年数)ですよね?
更新回数=回数分保存年数が増えます
例えば2020/12/20に保存→保存期間2020/12/20-2021/12/19
2021/12/19に保存期限が終わる
1回更新→保存期間2021/12/20→2022/12/19
保存期限日=Date ( Month ( 胚凍結期限日 ) ; Day ( 胚凍結期限日 ) ; Year ( 胚凍結期限日 ) + 更新回数 )で更新回数が増えると保存期限日も延長するように設定しています。
ここで算出された保存期限日が翌月の人(2023年12月現在であれば2024年1月中に期限が来る人)を色付けしたいです。
>保存期限を1年として保存期間が切れる
逆ではないですか。期限は日付(切れる日、期間の限界)であって、「保存期間」が1年であれば「(登録日から1年間保存するので1年後が)保存期限」
ご指摘の通り保存期間が1年で保存期限をむかえます。
計算式指定窓で計算式を作るときに、
フィールド名、関数等は選択窓で選択‣入力したほうが間違いなくていいですよ。
> レコードに更新数と保存期間があり
この保存期間フィールドは保存終了の日付が入っていて、
更新するとその日付が変わるのでしょうか?
Offline
投稿が前後しました、、
保存期限日フィールドがあるのですか?
ならば、この年月と本日の年月を比べればいいでしょう。
Offline
チポ様
> 計算式指定窓で計算式を作るときに、
フィールド名、関数等は選択窓で選択‣入力したほうが間違いなくていいですよ。
すみません。ファイルメーカー初心者すぎてよくわかっていませんがやってみます
> レコードに更新数と保存期間があり
この保存期間フィールドは保存終了の日付が入っていて、
更新するとその日付が変わるのでしょうか?
はい。保存期限日(保存終了日)が出るようにしております
保存期限日=Date ( Month ( 期限日 ) ; Day ( 期限日 ) ; Year ( 期限日 ) + 更新回数 )で更新回数が増えると保存期限日も延長するように設定しています。
まれな話しですが、2月29日に開始したかたは、翌年には同じ日がありません。前後の日にずらしたとすると、4年後にはその日があるので、厳密なことをいう人からクレームになる可能性もありますよ。
Offline
フィールドが実際と違う説明にしてたので回り道してますが
胚凍結期限日
という別の日を基準に更新回数で年数を加算しているので、うるう年以外が3/1になるだけで「だんだんずれる」ということはなさそうです。
質問に戻ると、方法は常に色々ありますが、現在日から翌月の開始終了日を計算すれば、こんな感じでしょう
Let([
d=Get(日付);
s=Date(Month(d)+1;Year(d);1);
e=Date(Month(d)+2;Year(d);0)
];
s<=保存期限日 and 保存期限日<=e
)
皆様回答ありがとうございました。
解決いたしました。
Pages: 1
[ Generated in 0.010 seconds, 9 queries executed - Memory usage: 529.46 KiB (Peak: 550 KiB) ]