みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お疲れ様です。
早速ですが、質問させていただきます。
個人データをIDで仕分けしており入力したものを統一の形式にしたいのですが方法が思いつきませんでした。
IDとID補正というフィールドがありIDフィールドにに数字を入れるとI、D補正フィールドに000-000-0という風な表示にしてあります。
ID補正フィールドは計算で
Right ( "000" & Div ( ID ; 10000 ) ; 3 ) & "-" & Right ("000" & Div ( Mod ( ID ; 10000 ) ; 10 ) ; 3 ) & "-" & Right ( "0" & Mod ( ID ; 10 ) ; 1 )
となっており上記の計算式で000-000-0の表示にしてあります。
現在個人データのIDは7桁ですが近々8桁になりそうなのでそこで質問です。
例
ID ID補正
1 000-000-1
12 000-001-2
123 000-012-3
1234 000-123-4
12345 001-234-5
123456 012-345-6
1234567 123-456-7
12345678 123-456-78
123456789 123-456-789
1234567890 123-456-7890
と上記のようにしたいのですが可能でしょうか?
どなたかご教示お願いいたします。
Offline
考え方を、、
IDが6桁以下ならその前に0を加えて7桁にし、7桁以上はそのまま
それの前から7文字目と、4文字目に「-」を加える
・・ここはRiplace関数が簡単ですね
> IDは7桁ですが近々8桁になりそう
と書かれていますが、
例は違うような。。
Offline
>チポさん
ありがとうございます。
近々8桁になりそうなのですが、この際10桁目までカバーしておこうとおもい質問させていただきました。
Offline
補正計算式の作例、
Let([
#num=IDフィールド;
#len=Length(#num);
#add=Substitute(10^(7-#len)-1; 9; 0);
#txt=Case(#len<7; #add) & #num
];
Replace(Replace(#txt;7;0;"-");4;0;"-")
)
Offline
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 549.67 KiB (Peak: 581.78 KiB) ]