Розширена (?) Фільтрація Excel


2

Перш за все, я хотів би визнати, що я дійсно нічого не знаю про Excel, але я спробував знайти це рішення в книгах Excel і в Google.

Ось що я намагаюся зробити:

Я маю дуже довгу таблицю Є 7 загальних стовпців, але тільки два стовпці, які мене найбільше цікавлять. Ось приклад CSV, який є набагато простішим, ніж мій фактичний набір даних, але пошук / сортування аналогічний:

John, Apple
Dave, Apple
Dave, Orange
Steve, Apple
Steve, Orange
Steve, Kiwi
Bob, Apple
Bob, Banana

Мені цікаво витягти всі рядки (усі стовпці), які відповідають таким критеріям:

["Apple"] АБО ["Apple" і "Orange") НЕ ["Apple" і "Orange" і Будь-що інше ] НЕ ["Apple" і Все, що не помаранчеве ]

Таким чином, з вищенаведеним CSV, я б отримав цілі рядки для Джона і Дейва, але не Стіва, а не Боба.

Я почав робити це вручну, і, швидше за все, закінчу до того часу, коли це питання має відповідь, але я хотів би знати це для подальшого використання.

Дякую!


Отже, якщо Боб має два ряди з Apple і Banana, відповідно, чи хочете ви зберегти рядки Боба?
Excellll

Що ви робите з "видобутим" рядком? Це вирізати і вставити? Копіювати і вставляти?
CharlieRB

@Excellll я б не зробив. Я хочу тільки "Apple" або "Apple і Orange" як комбінацію.
taylor

@CharlieRB Все, що дійсно - Покладіть його в новий аркуш або скоротити все, що не відповідає. Не обов'язково бути взаємодією з буфером обміну.
taylor

Відповіді:


0

Ось метод, що використовує три допоміжні стовпці. Ідея полягає в тому, що ви можете фільтрувати рядки зі значенням 1 у третій допоміжній колонці, щоб отримати потрібні рядки.

Перша допоміжна колонка (стовпець C у моєму прикладі): дає кількість записів "Apple" для цієї особи.

=COUNTIFS($A$1:$A$8,A1,$B$1:$B$8,"Apple")

Друга допоміжна колонка (колонка D ): Дає підрахунок записів для цієї особи.

=COUNTIF($A$1:$A$8,A1)

Третя допоміжна колонка (стовпець E ): Повертає 1 для людей, які відповідають вашим критеріям.

=IF(D1=1,IF(C1>0,1,0),IF(AND(D1=2,C1=1),IF(SUMPRODUCT(($A$1:$A$8=A1)*($B$1:$B$8="Orange"))=1,1,0),0))

Потім просто відфільтруйте для 1 s у колонці E.

enter image description here

Ви можете стискати ці допоміжні стовпці в одну допоміжну колонку, якщо вам потрібно, але формула стане повторюваною і неможливо прочитати.


Дякую, це виглядає досить просто. Можливо, доведеться експериментувати з цим методом протягом вихідних!
taylor

0

Тому в основному кількість записів Apple та Orange для людини повинна бути рівною кількості всіх записів для людини. Тому ви можете зробити це:

  1. Додати стовпець десь у вашій таблиці.
  2. Покладіть у формулу =A2&"###"&B2 де A2 є першою коміркою, яка містить ім'я, B2 є першою клітиною, яка містить плоди і ### - це роздільник, який буде використовуватися не у назві, ані у стовпчику "фрукти". (Якщо ### трапляється там, просто замінити його на щось інше, що не можна знайти в цих стовпцях.)
  3. Перетягніть цю формулу по всьому стовпцю.
  4. Додати іншу колонку десь у вашій таблиці.
  5. Покладіть у формулу =(COUNTIF($C:$C,$A2&"###Apple") + COUNTIF($C:$C,$A2&"###Orange")) = COUNTIF($A:$A,$A2) де C стовпець, який ви щойно додали на кроці 1, A все ще стовпець з ім'ям і ### є тим же заповнювачем, що використовувався на кроці 2.
  6. Перетягніть цю формулу на весь стовпець.

Результат: Усі "недійсні" рядки повинні містити "FALSE", всі "дійсні" рядки повинні містити "TRUE".

Примітка про попередження: Після того, як ви почнете видаляти записи, "FALSE" може перетворитися на "TRUE" - так що ви можете створити копію цілого стовпця, перш ніж виконувати будь-які зміни у даних.

HTH.


Звичайно, це працює лише за припущення, що кожне ім'я має принаймні одне яблуко або припускається, що імена, які мають тільки апельсини, є дійсними.
Hauke P.

Дякуємо за відповідь! Наступного разу я повинен виконати подібне завдання, я дам вашому методу спробу :)
taylor
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.