みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
お世話になっております。また壁に突きあたりました。お知恵をお貸しください。
環境はWin、Ver13です。
氏名フィールドがあります。
山田 太郎
鈴木 花子
のように、姓と名と間には、全角のスペースを入れています。
これを、
山● 太●
鈴● 花●
のように、姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したいのですが、その方法がわかりません。
ご教示いただければ幸いです。
姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したい
2番目ですか?
一文字だったらどうします?
姓名の最後だったら
● ●
こんなこともあり得るし、、
Offline
姓の2番目を●に置換し、全角スペースはそのままに、名の2番目も●に置換したい
2番目ですか?
一文字だったらどうします?姓名の最後だったら
● ●
こんなこともあり得るし、、
チポ様
お世話になっております。
おっしゃる通り一文字もあります。
森 進一さんのように姓が一文字の場合、
森● 進●
さらに
森田 進さんのように名が一文字の場合も同様に、
森● 進●
としたいと思います。
引き続きご教示いただければ幸いです。
さらに、3文字以上の場合、
森 進一郎 → 森● 進●郎
と想定した時の式例、
Let([
#姓=GetValue(Substitute(氏名フィールド;" ";¶);1);
#姓=Replace(#姓;2;1;"●");
#名=GetValue(Substitute(氏名フィールド;" ";¶);2);
#名=Replace(#名;2;1;"●")
];
Substitute(List(#姓;#名);¶;" ")
)
Offline
さらに、3文字以上の場合、
森 進一郎 → 森● 進●郎
と想定した時の式例、
Let([
#姓=GetValue(Substitute(氏名フィールド;" ";¶);1);
#姓=Replace(#姓;2;1;"●");
#名=GetValue(Substitute(氏名フィールド;" ";¶);2);
#名=Replace(#名;2;1;"●")
];
Substitute(List(#姓;#名);¶;" ")
)
Hiro様
ありがとうございます。
ご教示の式例を試してみました。
福島 賢一朗 → 福● 賢一朗● (理想は 福● 賢●朗)
溝島 明 → 溝● 明● (まさに理想どおり!)
河田 哲也 → 河● 哲也 ● (理想は 河● 哲●)
井上 三智子 → 井● 三智子 ● (理想は 井● 三●子)
このようになってしまいます。
式内を改造し、いろいろとトライしますが思うようにいきませんでした。
どうすれば理想どおりになるのでしょうか?
ご面倒をおかけして申し訳ありませんが、再度、ご教示いただければ幸いです。
問題の原因は、このサイトが、式中の「"全角スペース"」を「"半角スペース"」に勝手に書き換えてる事に由りますネ。
コピーした式の "半角スペース" の箇所を "全角スペース" へ書き戻してから再度検証してみて下さい。
Let([
#姓=GetValue(Substitute(氏名フィールド;"全角スペース";¶);1);
#姓=Replace(#姓;2;1;"●");
#名=GetValue(Substitute(氏名フィールド;"全角スペース";¶);2);
#名=Replace(#名;2;1;"●")
];
Substitute(List(#姓;#名);¶;" ")
)
Offline
スペース位置からふたつめの文字と最初から2文字目を●にするでよければ、
Let([ZS=Position(氏名;Char(12288);1;1);
TMP=Replace(氏名;ZS+2;1;"●")];
Replace(TMP;2;Case(ZS≠2;1);"●")
)
Offline
Hiro様
ご教示ありがとうございます。
おっしゃるように全角スペースで思ったとおりの動きをしました。
感謝感激です!
お世話になりまして、ありがとうございました。
Keima様
ありがとうございます。
Hiro様の式とまったく同じ結果を示しました。
たいへん勉強になりました。
ありがとうございました。
Pages: 1
[ Generated in 0.005 seconds, 9 queries executed - Memory usage: 559.82 KiB (Peak: 579.38 KiB) ]