初心者のFileMaker pro Q&A (旧掲示板)

みんなに優しく、解りやすくをモットーに開設しています。 以下のルールを守りみんなで助け合いましょう。

1.ファイルメーカーで解らない事があればここで質問して下さい。 何方でも、ご質問・ご回答お願いします。 (優しく回答しましょう)

You are not logged in.

Announcement

新しい掲示板は、こちら:https://fm-aid.com/forum/t/filemaker


#1 2015-03-05 12:09:13

NK
Member

IDリストから、特定のIDを除外したい

FMP13adv Macです。

IDのリストを改行区切りで取り出しました。
(例: 12¶84¶950¶39¶10¶49¶50)

その中から指定したIDを除外したリストが作りたいです。
(例: 84¶50¶39 を除外)

Filterで除外されたリストはどう取り出したらいいでしょうか?

Offline

#2 2015-03-05 12:21:39

NK
Member

Re: IDリストから、特定のIDを除外したい

Substituteで指定したものを空白にしたらいいのかな?

やってみます。

Offline

#3 2015-03-05 12:41:52

Hiro
Member

Re: IDリストから、特定のIDを除外したい

Substituteを利用した、所謂、逆FilterValues(元リスト;除去リスト) の式例、

Let([
  $prm[1]=元リスト;
    $prm[1]=¶ & $prm[1] & ¶;
  $prm[2]=除去リスト;
     $prm[2]="[\"\¶" & Substitute($prm[2]; [¶; "\¶\";\"\¶\"];[\"\¶"]) & "\¶\";\"\¶\"]";
       $prm[2]="Substitute($prm[1];" & $prm[2] & ")";
   $res=Evaluate($prm[2]);
     $res="\"" & Substitute($res;[¶;"\";\""]) & "\";\"\"";
       $res="List(" & $res & ")"
];
   Evaluate($res)
)

Offline

#4 2015-03-05 12:52:30

旅人
Member

Re: IDリストから、特定のIDを除外したい

Substituteそのままではダメですよ。
リレーションで除外できたら、それをListしたら簡単そう?

Offline

#5 2015-03-05 13:53:32

barikan
Guest

Re: IDリストから、特定のIDを除外したい

advancedならカスタム関数を使うのが良いでしょう。

関数名 ListDelete
引数1 値一覧
引数2 削除値

Let ( [
valueList = 値一覧 ;
removeList = 削除値 ;
r = GetValue ( removeList ; ValueCount ( removeList ) ) ;
l = Substitute ( ¶ & ValueList & ¶ ; ¶ & r & ¶ ; ¶ ) ;
l = Middle ( l ; 2 ; Length ( l ) - 2 )
] ;

Case (
valueList <> l ; ListDelete ( l ; removeList ) ;
valueList = l and ValueCount ( removeList ) > 1 ; ListDelete ( l ; LeftValues ( removeList ; ValueCount ( removeList ) - 1 ) ) ;
l )

)

ListDelete ( "12¶84¶950¶39¶10¶49¶50" ; "84¶50¶39" )
とすればご希望の結果が得られます。

#6 2015-03-05 14:17:11

NK
Member

Re: IDリストから、特定のIDを除外したい

Hiroさん、旅人さん、ありがとうございます。

FilterValues の逆なので、簡単に計算式で除外できるかと思ったのですが、うまくいかないものですね。

Hiroさんの式が理解できないのですが、
$prm[2]の部分は何をやっているのでしょうか?

旅人さん、計算式が複雑なので、リレーションでリストを作り直すアプローチも考えてみます。

ありがとうございます。

Offline

#7 2015-03-05 15:01:17

NK
Member

Re: IDリストから、特定のIDを除外したい

barikanさん、ありがとうございます。

カスタム関数は慣れていなくて頭に浮かびませんでした。
再帰処理ができるんですね。

思ったような処理ができました。

ありがとうございました。

Offline

Registered users online in this topic: 0, guests: 1
[Bot] ClaudeBot

Board footer

Powered by FluxBB
Modified by Visman

[ Generated in 0.007 seconds, 10 queries executed - Memory usage: 553.42 KiB (Peak: 564.45 KiB) ]