みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
いつも色々と参考になっております。ありがとうございます。
条件付き書式の設定で文字に色をつけたいのですが、、、
・フィールドがテキストで設定されてしまっている
・日付を手動で入力されてしまっている
・条件にて、値が「今日の日付」とした場合、単体で「6/11」とやると認識してくれるのか色がつく
・しかし、このフィールドが「6/11にA社から○本入荷」とテキスト文になっているため「6/11」が今日の日付と認識されず色がつかない
このような場合、テキスト文になっている場合は今日の日付として色をつけれることはできないのでしょうか??
よろしくお願い致します。
Offline
AIじゃないので、「テキスト文」のどこに日付が入ってるか明示できるルールがあれば可能です。
例では年は入力しないようなので、日付と認識させるのでなく逆に「今日の月日文字列が含まれるか」で判定してみたら
Let ( [
d = Get(日付) ;
md = Month ( d ) & "/" & Day ( d )
];
PatternCount ( Self ; md )
)
この場合、年まで入力してあったとしても、来年や去年の日付でも色が着いてしまいます。(これは年を入力しないことがあれば、避けようがないですが)
文字列の先頭の日付とか条件がもっとあれば、それも計算式に入れた方が間違いが減ります。
最初に検出された日付らしいテキストで処理すればいいのでしたら、
While (
[
t = self ;
i = Length ( t )
] ;
i ;
[
t = Replace ( t ; i ; 1 ; Left ( Filter ( Middle ( t ; i ; 1 ) ; "0123456789/." ) & ¶ ; 1 ) ) ;
i = i - 1
] ;
GetAsDate (
GetValue (
Substitute (
Char(2) & t & Char(1) ;
[ ¶ ; Char(1) & Char(2) ];
[ Char(2) & Char(1) ; "" ];
[ Char(1) & Char(2) ; ¶ ];
[ Char(1) ; "" ];
[ Char(2) ; "" ]
) ;
1
)
) = Get ( 日付 )
)という式でいいでしょうが。
その入力内容ですと、来年の同日でもチェックされてしまいますよ。
Last edited by Shin (2023-06-11 12:00:13)
Offline
himadaneeさんの式だと、11/11 と 1/1 などが区別できないですね。また、1/1 と入力されていると、1/01 で検出されないです。
私の式も、日付より前に、数字や/が入力されていると誤動作しますし。(数字と/などの区切り文字で検出することもできなくはないですが)
かなり難しいです。
Last edited by Shin (2023-06-11 15:10:14)
Offline
>himadaneeさん、Shinさん
ありがとうございます!
とりあえず直近の日付で管理しているので、この計算式で大丈夫でした。
本来日付として分けて作成すればいいんでしょうけど、他部署からの要望があとからあとから追加されていきまして。。。
いつも大変参考になります!ありがとうございます!
Last edited by コロン (2023-06-12 09:14:37)
Offline
年を特定するため、作成日を考慮して、直近の日を別フィールドに計算させておくのがいいかもしれませんよ。
Offline
Pages: 1
[ Generated in 0.007 seconds, 7 queries executed - Memory usage: 553.7 KiB (Peak: 581.59 KiB) ]