我有2列的值,其中第二列包含第一列的子集。我從第一列解析部分匹配:解析列中的值,同時排除其他列中的某些值
=query(A:A, "select A where A ends with 'x'")
它工作正常。你將如何修改它以排除共享值?
下面是一個例子:
A是我們的,B是我們要放棄子集分析,C將是理想的結果:
- 過濾器值以排除列B的共同值
- 僅返回以'x'結尾的值
我有2列的值,其中第二列包含第一列的子集。我從第一列解析部分匹配:解析列中的值,同時排除其他列中的某些值
=query(A:A, "select A where A ends with 'x'")
它工作正常。你將如何修改它以排除共享值?
下面是一個例子:
A是我們的,B是我們要放棄子集分析,C將是理想的結果:
編輯
要解決這個問題,首先可能需要排除列B中的值,然後查詢結果以僅匹配模式'%x'。試試這個公式:
=QUERY(FILTER(A:A,REGEXMATCH(A:A,JOIN("|",FILTER(B:B,B:B<>"")))=false), "select Col1 where Col1 like '%x'")
編輯#2
Special symbols爲正則表達式是\ + * ? [^] $ () { } = ! < > | : -
如果這樣的符號在您的數據得到滿足,需要通過\
爲了逃避他們使用正則表達式。所以在這種情況下公式REGEXMATCH
如果列B包含特殊符號將無法正常工作。可能的解決方案是像這樣替換它們:[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'")
歡迎[所以]。請參加[旅遊]和結帳[問]。還包括你的問題你已經研究和嘗試了什麼。 –