Съдържание
Днес ще ви покажа как Excel да филтрира множество критерии за някои съвпадащи данни с помощта на функцията FILTER на Excel. Преди да преминем към основната дискусия, бих искал да ви напомня за едно нещо. ФИЛТЪР е налична само в Office 365 .
Изтегляне на работна тетрадка за практика
Филтриране на множество стойности.xlsxВъведение във функцията FILTER
Нека се запознаем с функцията на Excel ФИЛТЪР за филтриране на множество критерии.
Погледнете набора от данни по-долу. Имаме годините, приемащи страни . страни шампиони , и държави, заели второ място на всички Световни купи на ФИФА в колони B, C, D, и E съответно.
Ако ви попитам кои са годините, в които Бразилия стана шампион?
Какво ще направите?
Вероятно ще преминете през колона D (шампион) и проверете дали има клетка, съдържаща Бразилия в него или не.
След това, когато откриете такава, ще се преместите две стъпки наляво от тази клетка в колона B (година) и запишете съответната година.
И след това отново ще преминете надолу през колоната D и направете същото за всички клетки, съдържащи Бразилия в него.
Така ще запишете всички години, в които Бразилия е шампион.
За малък набор от данни това е OK Но можете ли да повторите същата процедура за голям набор от данни, например 10000 редове?
Прочетете още: Как да филтрирате множество редове в Excel (11 подходящи подхода)
Отговорът е "не", голямо "не".
Какво да правим?
Microsoft Excel предлага вградена функция, наречена ФИЛТЪР да изпълни точно същата задача за вас.
Сайтът ФИЛТЪР функцията приема три аргумента - диапазон от клетки, наречен масив , критерий, наречен включва, и стойност, наречена if_empty който се връща в случай, че критерият не е изпълнен за някоя клетка.
Затова синтаксисът на ФИЛТЪР функция е:
=FILTER(array,include,[if_empty])
За по-добро разбиране, нека се обърнем към Бразилия Трябва да филтрираме годините, в които Бразилия стана шампион.
Формулата за постигане на тази цел е:
=FILTER(B5:B25,D5:D25="Brazil","")
Виждате ли, имаме всички години, когато Бразилия става шампион, 1958, 1962,1970, 1994, и 2002 (Оцветено в изображението).
Сега, за да разберем, нека да разбием формулата.
D5:D25="Бразилия" преминава през всички клетки от D5 към D25 и връща TRUE ако намери Бразилия , в противен случай FALSE .
Формулата FILTER(B5:B25,D5:D25="Бразилия","") тогава става
=FILTER({B5,B6,B7,...,B25},{FALSE,FALSE,...,TRUE,...,FALSE},"")
За всеки TRUE , тя връща съседната клетка от масива {B5,B6,B7,...,B25}
И за FALSE , тя не връща резултат, "" . (Това не е задължително. По подразбиране няма резултат, "" )
Има TRUE само за клетките B9 , B10 , B12 , B18, и B20 .
Така се връща само съдържанието на тези клетки: 1958, 1962, 1970, 1994 и 2002.
Това са годините, в които Бразилия става шампион.
Надявам се, че сте разбрали как ФИЛТЪР функцията работи.
Сега, ако разбирате това, можете ли да ми кажете формулата за определяне на годините, в които страната домакин е станала шампион?
Да, прав сте. Формулата е:
=FILTER(B5:B25,C5:C25=D5:D25,””)
Вижте, страната домакин стана шампион в 1930, 1934, 1966, 1974, 1978, и 1998.
4 начина за филтриране с множество критерии в Excel
Вече разбрахме как ФИЛТЪР Нека този път се опитаме да приложим няколко критерия в рамките на функцията. Ето преглед на набора от данни за днешната задача.
1. Филтриране на множество стойности от тип OR
На първо място, нека се съсредоточим върху няколко критерия за ИЛИ тип. Това са критериите, които се изпълняват, когато е изпълнен един или повече от един критерий.
Например, ако ви попитам, кажете ми една година, в която Аржентина стана шампион или Западна Германия стана второ място .
Можете да кажете или 1978 , или 1982 или 1986 .
Сега нека се опитаме да филтриране през всичките години, когато Италия беше или хост или шампион , или и двете . Това е проблем на ИЛИ Това е лесна задача. Просто добавете двата критерия с плюс (+) знак. Нека следваме инструкциите по-долу, за да филтрираме множество критерии в Excel!
Стъпки:
- Първо, изберете клетка G5 , и запишете функцията FILTER в тази клетка. Функцията ще бъде:
=FILTER(B5:B25,(C5:C25="Italy")+(D5:D25="Italy"))
- Затова просто натиснете Въведете на клавиатурата си. В резултат ще получите годините, когато Италия е била хост или шампион или и двете което е връщане на функцията FILTER .
Вижте, Италия е бил домакин, шампион или и двете през годините 1934, 1938, 1982, 1990, и 2006.
Разбивка на формулата
Сега, за да се разберем, нека да разбием формулата.
- C5:C25="Италия" връща масив от TRUE или ЛЪЖА. TRUE когато домакин е Италия, FALSE в противен случай.
- D5:D25="Италия" също връща масив от TRUE или FALSE . TRUE когато Италия е шампион, FALSE в противен случай.
- (C5:C25="Италия")+(D5:D25="Италия") добавя два масива от булеви стойности, TRUE и FALSE . Но тя разглежда всеки TRUE като 1 , и всеки FALSE като 0 .
- Така че тя връща 2 когато и двата критерия са изпълнени, a 1 когато е изпълнен само един критерий, и a 0 когато не е изпълнен нито един критерий.
Сега формулата става:
=FILTER({B5,B6,B7,...,B25},{0,2,1,...,0})
Той счита числата, по-големи от нула (тук 0 и 1), за TRUE и нулите като ЛЪЖА.
Така се връщат годините от колоната B когато е изправен пред число, по-голямо от 0 и в противен случай не връща резултат.
Ако разбирате как ФИЛТЪР функцията работи с множество критерии от типа OR, можете ли да дадете отговор на един въпрос?
Каква ще бъде формулата, по която ще се отсяват годините, в които Бразилия е станала шампион или Италия е станала второ място или и двете?
Да, прави сте. Формулата ще бъде:
=FILTER(B5:B25,(D5:D25="Brazil")+(E5:E25="Italy"))
2. Приложете функцията FILTER за критерия AND
Сега ще се съсредоточим върху множество критерии на И Това означава, че трябва да изпълним всички критерии, за да получим TRUE резултат, в противен случай FALSE .
Знаем, че до годината 1970 . Световна купа на ФИФА е наречен "Жул Риме" трофей. след 1970 , тя започва да се нарича Световна купа на ФИФА . Така че първият ми въпрос е кои са годините, в които Бразилия спечели "Жул Риме" трофей?
Има два критерия тук.
- Първо, годината трябва да е по-малка или равна на 1970 .
- Второ, шампион страната трябва да бъде Бразилия .
И двата критерия трябва да бъдат изпълнени. Как да се справим с тази задача?
Съвсем просто. Умножете двата критерия вътре в ФИЛТЪР функция с (*) Нека следваме инструкциите по-долу, за да филтрираме множество критерии в Excel!
Стъпки:
- Първо, изберете клетка G5 , и запишете функцията FILTER в тази клетка. Функцията ще бъде:
=FILTER(B5:B25,(B5:B25<=1970)*(D5:D25="Brazil"))
Разбивка на формулата
(B5:B25<=1970
връща TRUE ако годината е по-малка или равна на 1970 г., в противен случай FALSE .(D5:D25="Бразилия")
връща TRUE ако страната шампион е Бразилия, в противен случай ЛЪЖА.(B5:B25<=1970)*(D5:D25="Brazil")
умножава два масива от TRUE и FALSE , но разглежда всеки TRUE като 1 и всеки FALSE като 0 .- Така че тя връща 1 ако са изпълнени и двата критерия, в противен случай връща 0.
- Сега формулата става:
=FILTER({B4,B5,B6,...,B24},{0,0,...,1,1,...,0})
- Той връща годината в колона B когато е изправена пред 1 и не връща резултат, когато се сблъска с 0 .
- Затова просто натиснете Въведете на клавиатурата си. В резултат на това ще получите години, когато Бразилия беше шампион на "Жул Риме" трофей, който е връщане на функцията FILTER . Вижте, до 1970 , Бразилия спечели три пъти , в 1958, 1962, и 1970 .
По този начин можем да филтрираме всички данни, които отговарят на няколко критерия от И тип.
Можете ли да ми кажете формулата за определяне на годините преди 2000 когато Бразилия е шампионът, а Италия е на второ място?
Формулата ще бъде:
=FILTER(B5:B25,(B5:B25<2000)*(D5:D25="Brazil")*(E5:E25="Italy"))
Подобни четива:
- Прилагане на множество филтри в Excel [Методи + VBA]
- Как да филтрирате данни в Excel с помощта на формула
- Филтриране на данни в Excel въз основа на стойността на клетката (6 ефективни начина)
3. Филтриране на множество критерии с комбинация от типове AND и OR в Excel
Случай 1: ИЛИ в рамките на ИЛИ
Ако ви задам един въпрос, кои са годините, в които Южна Америка държава ( Бразилия, Аржентина или Уругвай ) е или шампион или второ място ?
Можете ли да дадете отговор на въпроса ми?
Забележете внимателно. Тук страната шампион трябва да бъде Бразилия, Аржентина, или Уругвай . Или страната, заела второ място, трябва да бъде Бразилия, Аржентина или Уругвай . Или и двете. Това е проблем от типа OR в рамките на OR. Не се притеснявайте, просто следвайте инструкциите по-долу, за да филтрирате множество критерии в Excel!
Стъпки:
- Първо, изберете клетка G5 , и запишете функциите в тази клетка. Функциите ще бъдат:
=FILTER(B5:B25,(ISNUMBER(MATCH(D5:D25,{"Бразилия", "Аржентина", "Уругвай"},0)))+ (ISNUMBER(MATCH(E5:E25,{"Бразилия", "Аржентина", "Уругвай"},0))))
Разбивка на формулата
MATCH(D4:D24,{"Бразилия", "Аржентина", "Уругвай"},0)
връща 1 ако отборът шампион е Бразилия, 2 ако отборът шампион е Аржентина, 3 ако отборът шампион е Уругвай, и грешка (N/A) ако отборът шампион не е нито един от тях.ISNUMBER(MATCH(D4:D24,{"Бразилия", "Аржентина", "Уругвай"},0))
преобразува числата в TRUE и грешките в FALSE .- По същия начин,
ISNUMBER(MATCH(E4:E24,{"Бразилия", "Аржентина", "Уругвай"},0))
връща TRUE ако страната, заела второ място, е Бразилия, Аржентина или Уругвай. FALSE - И така,
(ISNUMBER(MATCH(D4:D24,{"Бразилия", "Аржентина", "Уругвай"},0)))+(ISNUMBER(MATCH(E4:E24,{"Бразилия", "Аржентина", "Уругвай"},0)))
връща 1 или 2 ако някоя южноамериканска държава е шампион, или е на второ място, или и двете. - и връща нула в противен случай.
- Формулата става:
=FILTER({B4,B5,...,B24},{2,0,0,2,...,1,0})
- Връща година от колона B ако намери число, по-голямо от нула, и не връща резултат в противен случай.
- Затова просто натиснете Въведете на клавиатурата. В резултат на това ще получите години, когато Южна Америка държава ( Бразилия, Аржентина или Уругвай ) е или шампион или второ място. Вижте, намерихме всички години, в които южноамериканска държава е била шампион или подгласник.
Случай 2: ИЛИ в рамките на И
Ако разбирате горната формула, можете ли да посочите формулата за определяне на годините, в които и двете шампион и подгласници са от Южна Америка (Бразилия, Аржентина, или Уругвай) ?
Съвсем лесно. Просто заменете (+) знак от предишната формула с (*) знак. Функциите са:
=FILTER(B4:B24,(ISNUMBER(MATCH(D4:D24,{"Бразилия", "Аржентина", "Уругвай"},0)))*(ISNUMBER(MATCH(E4:E24,{"Бразилия", "Аржентина", "Уругвай"},0))))
Това се е случвало само два пъти - през 1930 и 1950 г.
4. Използване на функцията FILTER в няколко колони
Ако се вгледате по-внимателно, ще откриете, че до годината 1990 , имаше една държава, наречена Западна Германия . И след 1990 , няма Западна Германия . Какво има Германия . Двамата всъщност са от една и съща страна. 1990 . две Германия (Източна и Запад) се обединяват и образуват днешна Германия.
Можете ли да определите годините, в които Германия беше шампион ? Няма значение Изток или West .
Трябва да използвате функцията FILTER в няколко колони.
Формулата ще бъде:
=FILTER(B5:B25,ISNUMBER(SEARCH("*Germany",D5:D25))
Разбивка на формулата
SEARCH("*Германия",D5:D25)
търси в масива всичко, което накрая има Germany D5 към D25 . Ако ви е необходима Германия в средата, използвайте "*Германия*".- Той връща 1 ако открие съвпадение (Западна Германия и Германия), и връща Грешка
ISNUMBER(SEARCH("*Germany",D5:D25))
превръща 1 в TRUE , а грешките в FALSE .- Накрая,
FILTER(B5:B25,ISNUMBER(SEARCH("*Germany",D5:D25))
връща годините от колоната B когато е изправена пред TRUE , в противен случай не връща резултат.
- Вижте, че Германия е шампион 4 пъти . 3 пъти от Западна Германия и 1 време от настоящето Германия .
Ако разбирате тази формула, можете ли да откриете годините, в които Световна купа на ФИФА беше домакин на две държави ?
Давам ви подсказка. Трябва да има " и " в името на страната домакин. ( "и" между две пространства)
Да, прави сте. Формулата ще бъде:
=FILTER(B5:B25,ISNUMBER(SEARCH("* и *",C5:C25))
Сега виждаме, че това се е случило само веднъж в 2002 , с домакин Южна Корея и Япония .
Алтернативни опции за филтриране на множество критерии в Excel
Споменатите по-горе методи за филтриране на множество критерии са доста полезни. Но с един недостатък . ФИЛТЪР е налична само в Office 365 .
Тези, които нямат Office 365 можете да използвате тези алтернативни методи за филтриране на някои данни с множество критерии.
За да откриете годините, в които Италия беше страна домакин или шампион , използвайте следната формула:
=IF((C5:C25="Italy")+(D5:D25="Italy"),B4:B24,"")
И да разберете годините, когато Бразилия беше шампион до 1970 , използвайте тази формула:
=IF((B5:B25<=1970)*(D5:D25="Brazil"),B5:B25,"")
Забележка: Не можете да премахнете празните клетки като ФИЛТЪР функция по този начин. И натиснете Ctrl + Shift + Enter за въвеждане на формулите.
Как да използвате разширен филтър в Excel
Ще приложим множество критерии на една колона използване на изчислени данни . Тук ще да намерите доставени продукти с количество повече от 50 но по-малко от 100 За тази цел трябва да прилагайте следното формула . формула е-
=IF(AND(E550),E5,FALSE)
Изходът в клетката C16 е 55 като доставеното количество пада в обхват .
Затова изберете Разширен команда под Сортиране и филтриране опции от Данни таб.
След това поставяме целия набор от данни като Обхват на списъка и клетки C15:C16 като Обхват на критериите .
Накрая натиснете OK за да видите резултат, т.е. списък с доставени продукти с количество в диапазона от 50 до 100.
Заключение
Използвайки тези методи, можете да филтрирате всякакви данни, като поддържате множество критерии в Excel. Знаете ли друг метод? Споделете с нас в раздела за коментари.