고급 필터를 사용하여 엄청난 양의 데이터를 필터링하려고 하다가 도저히 설명할 수 없는 문제에 부딪혔습니다...
저는 다양한 속성을 지닌 수많은 제품이 포함된 수십만 줄(.xlsb)의 문서를 가지고 있었습니다. 하나의 항목, 하나의 줄, 열의 속성입니다. 내가 하고 싶었던 것은 열 중 하나에 Y가 있는 항목(다른 옵션은 N임)과 몇 가지 브랜드 중 하나인 항목(다른 열)을 필터링(목록에서 제거)하는 것이었습니다.그리고또한 특정 카테고리(또 다른 열)에도 있습니다. 다르게 말하면, V열에 Y가 있는 항목과 C열에 AAA가 있는 항목을 모두 제거하고 싶었습니다.그리고D열의 1A2B입니다.
먼저 Y 필터를 만들었습니다. 해당 열의 맨 위에 ="=N"을 넣고 테스트한 결과 훌륭하게 작동했습니다. 해당 열에 Y가 있는 모든 항목이 제거되었으므로 지금까지는 괜찮습니다.
그런 다음 하나의 브랜드(AAA)를 자체 열에 추가하고 <>1A2B를 다른 열에 넣은 다음 필터를 다시 실행했습니다. 첫 번째 줄(Ys)을 먼저 필터링한 다음 나머지 항목 중에서 해당 브랜드(AAA) 및 특정 카테고리(1A2B)에 속한 항목을 필터링하는 대신 두 번째 줄을 완전히 무시했습니다. 아무것도 바뀌지 않았다.
확인하기 위해 V열에 ="=N"을 추가해 보았지만 아무런 변화가 없었습니다.
카테고리 필터는 그 자체로 예상대로 작동합니다. Y/N 필터도 그 자체로 잘 작동합니다. 그러나 어떤 이유에서든 함께 사용하면 더 넓은 필터만 실행됩니다. 어떤 아이디어가 있나요?
마침내 작동하게 된 방법은 V열에 ="=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"))
그렇게 하고 고급 필터를 실행하면 베타 = Y인 행 5-7이 필터링되고 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
. 그러나 이는 확장성이 매우 낮고 다루기 어렵습니다.