web-dev-qa-db-ja.com

Googleスプレッドシートを使用して、列Aの列Bにある単語を含むフレーズを削除して、列Cを作成します

enter image description here

列Aにリストがあり、Wordを含むセルを削除したい。

1
Michael Rock

C2に次の数式を入力します。

=filter(
     ArrayFormula(if(REGEXMATCH(A2:A,TEXTJOIN("|",true,B2:B)),,A2:A)),
      ArrayFormula(if(REGEXMATCH(A2:A,TEXTJOIN("|",true,B2:B)),,A2:A))<>""
)

式の内訳:

   =REGEXMATCH(A2,TEXTJOIN("|",true,B2:B))

RegexmatchTRUEを返し、FALSEA2には列Bの単語が含まれています。 TEXJOINは一目瞭然で、次のような小さな正規表現を作成するのに役立ちます:value1|value2|value3

 =ARRAYFORMULA(REGEXMATCH(A2:A,TEXTJOIN("|",true,B2:B)))     

Arrayformulaは範囲をテストする方法ですA2:A

ArrayFormula(if(REGEXMATCH(A2:A,TEXTJOIN("|",true,B2:B)),,A2:A))

単純なIFtrueが何もしない場合、falseの場合は値をコピーします。

最後の関数は、空白のエントリをすべて削除するFILTERです。
<>""は空の値のチェックです。

1
pjmg
=FILTER(A2:A, NOT(REGEXMATCH(A2:A, TEXTJOIN("|", 1, B2:B))))

0


=ARRAYFORMULA(FILTER(
 IFERROR(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, B2:B)), A2:A), NOT(COUNTIF(B2:B, 
 IFERROR(REGEXEXTRACT(A2:A, TEXTJOIN("|", 1, B2:B)), A2:A)))))

0

1
user0