1

Я столкнулся с чем-то, что я не могу объяснить, пытаясь отфильтровать огромную кучу данных, используя расширенный фильтр ...

У меня был документ с сотнями тысяч строк (.xlsb), содержащий целую кучу продуктов с их различными атрибутами. Один элемент, одна строка, атрибуты в столбцах. Я хотел отфильтровать (удалить из списка) элементы, у которых в одном из столбцов было обозначено Y (другой вариант - N), а также элементы, относящиеся к одной из нескольких марок (другой столбец), и также в данной категории (еще один столбец). Иными словами, я хотел удалить что-нибудь с Y в столбце V, а также все, что имеет AAA в столбце C и 1A2B в столбце D.

Сначала я создал фильтр Y: в этот столбец я поместил = "= N", протестировал его, и он отлично работал. Все с Y в этом столбце было удалено, пока все хорошо.

Затем я добавил одну марку (AAA) в собственную колонку, поместил <> 1A2B в другую и снова запустил фильтр. Вместо того, чтобы сначала отфильтровывать первую строку (Ys), а затем, из оставшихся предметов, отфильтровывать товары данной марки (AAA) и данной категории (1A2B), он полностью игнорировал вторую строку. Ничего не изменилось.

Я даже попытался добавить = "= N" в столбец V, чтобы убедиться, но это ничего не изменило.

Фильтр категорий сам по себе работает должным образом. Фильтр Y/N сам по себе также отлично работает. Но по какой-то причине при объединении выполняется только более широкий фильтр. Есть идеи?

Я наконец-то начал работать над этим, перечислив каждую возможную марку (AAA, AAB, AAC и т.д.) По отдельности с = "= N" в столбце V. Таким образом, он по отдельности "позволял" каждой марке иметь N Но это далеко не идеальное решение. Я надеялся, что только = = "N в строке достигнет того же, но, видимо, не так.

2 ответа2

0

Вместо того, чтобы пытаться делать это с ужасно сложными фильтрами, гораздо лучше, если вы можете добавить еще один столбец, создать столбец с формулой, равной true или false (или Y/N или любым другим предпочтениям). Тогда вы можете легко применить фильтр только к этому столбцу.

0

Я думаю, я понял, что вы пытаетесь сделать с помощью расширенного фильтра.

Вам нужно использовать одну строку для ваших критериев, потому что каждая строка является ИЛИ с остальными. То есть, когда вы выполняете расширенный фильтр, вы получаете строку, если она соответствует критериям в любой из строк критериев. Если вам нужны зависимые критерии, такие как "НЕ И", вам нужно поместить эти критерии в новый столбец и сделать так, чтобы ваша формула ссылалась на первую строку данных.

В следующем макете нам нужны те, у которых в столбце 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), но это действительно плохо масштабируется и становится громоздким.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .