みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になります。
FileMakerPro15を使用しています。
文字の置き換えについての質問です。
下記、「仮CD」というフィールドに"1"が入力されたら「本CD」を"AA"に、
同様に"AB"→"S"、"D"→"G"、"F"→"S"、"AD"→"U"というように文字の置き換えをしたいのですが、
入力されている文字に"D"含まれているせいなのか、"AD"を入力すると"U"ではなく、
Substituteで先に設定している"G"に置き換わってしまいます。
入力された文字、この例では2文字の"AD"を認識し、指定した文字"U"に確実に置き換えをするには
どのようにすればよいでしょうか?
Substitute (仮CD; ["1"; "AA"]; ["AB"; "S"]; ["D"; G"]; ["F"; "S"];["AD"; "U"])
よろしくお願いいたします。
ADの変換をDより前にすればいいことでしょう。
Offline
とりあえずは、順番を考えればいいでしょうが、置き換えがもっとあるのでしたら、全てコード化して、メインコード、サブコードで表示する、のような事をしないと、運用が難しくなりますよ。
Offline
無害なマーカ文字(例えば、Char(8203))をキーワードの前後に付けて、
完全一致照合・置換し、最後にそのマーカ自体も始末して、お終いです。
(※完全一致照合なら、置換数が増えても、順番を考る煩わしい問題もありません)
Let(
[
#mk=Char(8203)
];
Substitute(
#mk & 仮CD & #mk
; [#mk&"1"&#mk; "AA"]
; [#mk&"AB"&#mk; "S"]
; [#mk&"D"&#mk; "G"]
; [#mk&"F"&#mk; "S"]
; [#mk&"AD"&#mk; "U"]
; [#mk; ""]
)
)
Last edited by Hiro (2019-04-10 00:10:08)
Offline
お世話になります。
チポ様、shin様
おっしゃるとおり、置き換えは1000件以上あるため、
置き換えの順番を考慮した設定はきびしいです。調べましたが
999件までしか設定ができないようなので、カテゴリ毎に分けてsub設定するか
コード表などを作成して対応するしかなさそうですね。
表を作ってルックアップコピー?あたりが無難でしょうか。
hiro様
完全一致照合、8203、、、の方法、
ありがとうございます。
コピぺで幅の無い空白ができてしまうんですね。
勉強になりました。
今回事案で、機械化は「完全一致照合」がミソだから、
マス処理を想定するなら、完全一致処理である
「リレーション照合」を利用した処理に持ち込むのが、
最善でしょう。
そのためには、別途、変換対応表テーブルが必須ですネ。
Offline
リレーション照合、、、チャレンジしてみます。
Pages: 1
[ Generated in 0.008 seconds, 9 queries executed - Memory usage: 513.23 KiB (Peak: 517.77 KiB) ]