2016-08-04 10 views
0

2番目の列には2番目の列に1番目の列のサブセットが含まれています。 1列目の部分一致を解析しています。他の列から特定の値を除外しながら列の値を解析する

これは問題なく動作します。共有された値を除外するために、それをどのように変更しますか?ここで

は例です:

  1. フィルタ値:

    enter image description here

    Aがあり、我々は、Bは、私たちが破棄したいサブセットであるから解析している、Cは、所望の結果になります列Bで共通の値を除外する

  2. 戻り値の末尾に 'x'が付きます
+0

は[そう]へようこそ。 [ツアー]とチェックアウト[質問]をしてください。あなたの質問には、すでに何を研究して試してみましたか? –

答えて

0

編集

これを解決するには、あなたが最初の「%X」をパターンのみに一致するように、列B、その後、クエリ結果から値を除外する必要があるかもしれません。この式を試してみてください:

正規表現の

=QUERY(FILTER(A:A,REGEXMATCH(A:A,JOIN("|",FILTER(B:B,B:B<>"")))=false), "select Col1 where Col1 like '%x'")

編集#2

Special symbolsは、そのようなシンボルが、あなたのデータで満たされている場合は、あなたが順番に\ことによって、それらをエスケープする必要があり\ + * ? [^] $ () { } = ! < > | : -

です正規表現を使用する。したがって、列Bに特殊記号が含まれている場合、式REGEXMATCHは正しく機能しません。考えられる解決方法は、[symbol][\symbol]のように置き換えることです。例えば、() repleceする:

=REGEXREPLACE(text ;"(\(|\)|\*)";"\\$1")

して結果を取得するには、列Cに次の式を使用してみてください:

=QUERY(FILTER(A:A,REGEXMATCH(A:A, REGEXREPLACE(JOIN("|",FILTER(B:B,B:B<>""));"(\(|\)|\*)";"\\$1"))=false), "select Col1 where Col1 like '%x'")

オリジナル答え

notキーワードを使用することができます動作します:

=query(A:A, "select A where not A ends with 'x'") 

と同じ:

=query(A:A, "select A where not A like '%x'") 
+0

おそらく私は自分自身を明確にしなかった、私はより明確にOPを編集しました。 – skataki

+0

申し訳ありませんが、私はまだ番号250と253が除外する列にある理由は分かりません。そしてなぜ番号104が望みの結果にないのですか? –

+0

私が使用しているクエリを見て、私たちはcolAのサフィックス "x"を持つ文字列だけを探したいので、104が出ます。 ColBにはcolAのサブセット(この例ではわずか102x)が含まれていますが、他の値も含まれています。おそらく、これは解決策には影響しませんでしたが、もう一度私はnoobですので、私はそれらの例をちょうどの場合に含めました! – skataki

関連する問題