我遇到了一些我無法真正解釋的事情,試圖使用高級過濾器過濾大量數據...
我有一個包含數十萬行的文件 (.xlsb),其中包含一大堆具有各種屬性的產品。一項、一行、列中的屬性。我想做的是過濾掉(從清單中刪除)其中一列中有 Y 的項目(另一個選項是 N),以及屬於幾個品牌中的任何一個的項目(另一列)和也在給定的類別中(另一列)。換句話說,我想刪除 V 列中帶有 Y 的所有內容,以及 C 列中帶有 AAA 的所有內容和D 列中的 1A2B。
首先,我創建了 Y 過濾器:我將 ="=N" 放在該列的頂部,並對其進行了測試,效果非常好。該列中帶有 Y 的所有內容都已刪除,到目前為止一切順利。
然後,我將一個品牌 (AAA) 添加到自己的列中,將 <>1A2B 放入另一個列中,然後再次運行過濾器。它不是先過濾掉第一行(Ys),然後過濾掉剩餘項目,過濾掉給定品牌(AAA)和給定類別(1A2B)的項目,而是完全忽略第二行。沒有改變。
我什至嘗試在第五列中添加 ="=N" 只是為了確保這一點,但這並沒有改變任何東西。
類別過濾器本身按預期工作。 Y/N 過濾器本身也能正常運作。但由於某種原因,當放在一起時,僅執行更廣泛的過濾器。有任何想法嗎?
我最終讓它發揮作用的方法是單獨列出每個可能的品牌(AAA、AAB、AAC 等),並在第五列中使用="=N"。每個品牌,但這遠非理想的解決方案。我希望行中只有 ="=N" 就能達到相同的效果,但顯然並非如此。
答案1
與其嘗試使用極其複雜的過濾器來執行此操作,不如假設您可以自由添加另一列,使用等於 true 或 false(或 Y/N 或您擁有的任何偏好)的公式建立一個列。然後您可以非常輕鬆地將過濾器應用於該列。
答案2
我想我知道你想用高級過濾器做什麼。
您需要使用單行作為您的條件,因為每一行都是與其他行的 OR。這意味著當您執行高級篩選時,如果它與任何條件行中的條件匹配,您將獲得一行。如果您需要依賴條件,例如“NOT AND”,那麼您需要將該條件放入新列中,並使公式引用第一行資料。
在下面的模型中,我們想要那些在B 列中具有“N”的數據,如果它們在C 列中具有“AAA”,那麼我們只需要在D 列中沒有“1A2B”時才需要它。 因此,在E 欄中,我們輸入一個新公式:=NOT(AND(C5="AAA",D5="1A2B"))
如果執行此操作並執行進階篩選器,您將篩選第 5-7 行,因為 Beta = Y,並且也會篩選出第 9 行和第 13 行。
|A |B |C |D |E
--+------+------+------+------+-------
1|Alpha |Beta |Gamma |Delta |Epsilon
2| |N | | |FALSE
3| | | | |
4|Alpha |Beta |Gamma |Delta |
5|Andy |Y |AAA |1A2B |
6|Bob |Y |BBB |1A2B |
7|Chad |Y |AAA |ZZ00 |
8|Duke |N |BBB |ZZ00 |
9|Ed |N |AAA |1A2B |
10|Frank |N |BBB |1A2B |
11|Gus |N |AAA |ZZ00 |
12|Herb |N |BBB |ZZ00 |
13|Indy |N |AAA |1A2B |
14|John |N |BBB |1A2B |
15|Kirk |N |AAA |ZZ00 |
16|Luke |N |BBB |ZZ00 |
您的另一個選擇是使用三行標準(<>AAA
& <>1A2B
、AAA
& <>1A2B
、<>AAA
& 1A2B
),但擴展性非常差並且變得笨拙。