Проблема с расширенным фильтром Excel 2010

Проблема с расширенным фильтром Excel 2010

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

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

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

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

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

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

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

решение1

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

решение2

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

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

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

Связанный контент