みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。
1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)
You are not logged in.
Pages: 1
以下のような定型文の一部(×表示部分)を
項目それぞれについて抽出したいのですが
どのような関数を用いれば良いでしょうか。
初歩的な質問で申し訳ありませんがご教授下さい。
よろしくお願いします。
以下定型文
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
【場所 】
場所:×××
【連絡先】
連絡先 : ×××
【お菓子】
ポッキー : ×××
【飲み物】
紅茶 : ×××
【食器】
コップ : ×××
行番号を指定して、コロンの後を取得する。
Replace ( GetValue ( 定型文 ; n ) ; 1 ; Position ( 定型文 ; ":" ; 1 ; 1 ) ; "" )
位相学さん
ありがとうございます。
しかしながら、うまくいきません・・・。
なぜでしょう・・・。
n のとこを数字に置き換えてますか?場所なら2行目だから2,連絡先なら5,など。
置き換えてます・・・。
スペースとか半角/全角など関係しますでしょうか・・・?
定型文に空白行が無いのなら
Let ( 変数=Substitute ( 定型文 ; [" : " ; ¶];[":" ;¶]) ;
GetValue ( 変数 ; 3 ) & ¶ & GetValue (変数 ; 6 ) & ¶ & GetValue ( 変数 ; 9 ) &¶ & GetValue ( 変数 ; 12 ))
Offline
旅人さん
ありがとうございます。
定型文自体の改行やスペース、空白行の変更などは出来ず・・・
定型文には、空白行が存在します。
連続する空白行が無い場合
Let ( 変数=Substitute ( 定型文 ;[¶&¶ ; ¶] ; [" : " ; ¶] ; [":" ;¶]) ;
GetValue ( 変数 ; 3 ) & ¶ & GetValue (変数 ; 6 ) & ¶ & GetValue ( 変数 ; 9 ) &¶ & GetValue ( 変数 ; 12 )・・・・)
Last edited by 旅人 (2015-11-18 10:18:03)
Offline
複雑な式ですね・・・。
コロン以下をそれぞれ別のフィールに抽出したい場合は
教えて頂いた式の一部を用いれば良いですか・・・?
初心者すぎてすみません・・・。
項目毎に取り出す、という事ならば、【】で括られている項目名を titl1 に、小項目名を titl2 に設定する事にして、
Let (
[
txt = Substitute ( 定型文 ; " : " ; ":" ) ;
titl1 = "お菓子" ;
titl2 = "ポッキー" ;
tpos0 = Position ( txt ; titl1 ; 1 ; 1 ) ;
tpos1 = Position ( txt ; titl2 ; tpos0 + 1 ; 1 ) ;
pos1 = Position ( txt ; ":" ; tpos1 ; 1 ) ;
pos2 = Position ( txt ; "¶" ; tpos1 ; 1 )
] ;
Middle ( txt ; pos1 + 1 ; pos2 - pos1 - 1 )
)
でいいでしょう。【飲み物】に、ポッキー: が現れる様な事が無いのでしたら、もう少し簡単になります。
adv版をお持ちでしたら、これをカスタム関数にしておけば、引数でコントロールできますので、楽でしょう。
最初に定型文を置換処理しているのですが、コロンに、全角のものと半角のスペース・コロン・スペースが混在していますが、統一されていないのでしょうか
Last edited by Shin (2015-11-20 09:04:45)
Offline
例では場所の後ろのコロンだけ違いますよね。
コロンを統一すると別フィールドの1個目は
GetValue ( Substitute ( 定型文 ;[¶&¶ ; ¶] ; [" : " ; ¶] ) ; 3 ) )
2個目も同様に。
Offline
お久し振りの投稿です。
計算結果は、改行文字列で返します。
×××
×××
×××
×××
×××
Let([
//▼引数を設定
$txt=定型文フィールド;
$txt=Substitute($txt;[":";":"];[" : ";":"]);
$n=PatternCount($txt;"¶")+1;
$i=0;
$res="";
//▼関数式を定義
$fnc=
"Case(
$i=$n; $res;
Let([
$i=$i+1;
$val=GetValue($txt;$i);
$itm=GetValue(Substitute($val;[\":\";\"\¶\"]);2);
$res=List($res;$itm)
]; Evaluate($fnc))
)"
];
//▼定義式を実行
Evaluate($fnc)
)
Offline
皆様、色々とアドバイスありがとうございます。
教えて頂いた方法をいくつか検討してみます。
Pages: 1
[ Generated in 0.005 seconds, 7 queries executed - Memory usage: 525.73 KiB (Peak: 546.27 KiB) ]