Съдържание
В урока ще разгледаме как да получаваме уникални стойности в Excel с помощта на функцията UNIQUE и динамични масиви. Ще научите проста формула за намиране на уникални стойности в колона или ред, в няколко колони, въз основа на условия и много други.
В предишните версии на Excel извличането на списък с уникални стойности беше трудно предизвикателство. Имаме специална статия, която показва как да откриете уникални стойности, които се срещат само веднъж, да извлечете всички отделни елементи в списък, да игнорирате празни места и др. Всяка задача изисква комбинирано използване на няколко функции и многоредова формула за масиви, която само гурутата на Excel могат да разберат напълно.
Въвеждането на функцията UNIQUE в Excel 365 промени всичко! Това, което преди беше ракетна наука, става лесно като азбука. Сега не е необходимо да сте експерт по формули, за да получите уникални стойности от диапазон въз основа на един или няколко критерия и да подредите резултатите в азбучен ред. Всичко се прави с прости формули, които всеки може да прочете и да адаптира за собствените си нужди.
Функция UNIQUE на Excel
Функцията UNIQUE в Excel връща списък с уникални стойности от даден диапазон или масив. Тя работи с всякакъв тип данни: текст, числа, дати, времена и т.н.
Функцията е категоризирана във функциите за динамични масиви. Резултатът е динамичен масив, който автоматично се разлива в съседните клетки по вертикала или хоризонтала.
Синтаксисът на функцията UNIQUE в Excel е следният:
UNIQUE(масив, [by_col], [exactly_once])Къде:
Масив (задължително) - обхватът или масивът, от който да се връщат уникални стойности.
By_col (незадължително) - логическа стойност, указваща начина на сравняване на данните:
- TRUE - сравнява данните по колони.
- FALSE или пропуснато (по подразбиране) - сравнява данните по редове.
Exactly_once (по избор) - логическа стойност, която определя кои стойности се считат за уникални:
- TRUE - връща стойности, които се срещат само веднъж, което е понятието за уникалност в базата данни.
- FALSE или пропуснато (по подразбиране) - връща всички отделни (различни) стойности в обхвата или масива.
Забележка: Понастоящем функцията UNIQUE е налична само в Excel за Microsoft 365 и Excel 2021. Excel 2019, 2016 и по-ранни версии не поддържат динамични формули за масиви, така че функцията UNIQUE не е налична в тези версии.
Основна формула UNIQUE в Excel
По-долу е представена формулата за уникални стойности на Excel в най-простата ѝ форма.
Целта е да се извлече списък с уникални имена от диапазона B2:B10. За тази цел въвеждаме следната формула в D2:
=UNIQUE(B2:B10)
Обърнете внимание, че 2-рият и 3-тият аргумент са пропуснати, тъй като стандартните настройки работят перфектно в нашия случай - ние сравняваме редовете един с друг и искаме да върнем всички различни имена в диапазона.
Когато натиснете клавиша Enter, за да завършите формулата, Excel ще изведе първото намерено име в D2, като прехвърли другите имена в клетките под него. В резултат на това ще имате всички уникални стойности в една колона:
В случай че данните ви са в колоните от B2 до I2, задайте втория аргумент на TRUE, за да сравните колоните една с друга:
=UNIQUE(B2:I2,TRUE)
Въведете горната формула в B4, натиснете Enter , и резултатите ще се разлеят хоризонтално в клетките вдясно. Така ще получите уникалните стойности в един ред:
Съвет. За да намерите уникални стойности в масиви с няколко колони и да ги върнете в една колона или ред, използвайте UNIQUE заедно с функцията TOCOL или TOROW, както е показано в примерите по-долу:
- Извличане на уникални стойности от диапазон с няколко колони в една колона
- Извличане на уникални стойности от диапазон с няколко колони в един ред
Функция UNIQUE на Excel - съвети и бележки
UNIQUE е нова функция и подобно на другите функции за динамични масиви има няколко особености, с които трябва да сте наясно:
- Ако масивът, върнат от UNIQUE, е крайният резултат (т.е. не е предаден на друга функция), Excel динамично създава диапазон с подходящ размер и го попълва с резултатите. Формулата трябва да се въведе само в една клетка Важно е да имате достатъчно празни клетки надолу и/или вдясно от клетката, в която въвеждате формулата, в противен случай се получава грешка #SPILL.
- Резултатите автоматично актуализиране когато изходните данни се променят. Въпреки това, новите записи, които са добавени извън препратения масив, не се включват във формулата, освен ако не промените масив справка. Ако искате масив да реагира автоматично на промяната на размера на изходния диапазон, след което да преобразува диапазона в таблица на Excel и да използва структурирани препратки или да създаде динамичен именуван диапазон.
- Динамичните масиви между различни файлове на Excel работят само когато и двете работни книги са отворени Ако изходната работна книга е затворена, свързаната формула UNIQUE ще върне грешка #REF!.
- Подобно на други функции за динамични масиви, UNIQUE може да се използва само в рамките на нормален обхват , а не таблица. Когато се постави в таблици на Excel, връща грешка #SPILL!.
Как да намерим уникални стойности в Excel - примери за формули
Примерите по-долу показват някои практически приложения на функцията UNIQUE в Excel. Основната идея е да се извлекат уникални стойности или да се премахнат дубликати, в зависимост от гледната точка, по възможно най-простия начин.
Извличане на уникални стойности, които се срещат само веднъж
За да получите списък със стойности, които се появяват в посочения диапазон точно веднъж, задайте третия аргумент на UNIQUE на TRUE.
Например, за да изтеглите еднократно имената, които са в списъка на победителите, използвайте тази формула:
=UNIQUE(B2:B10,,TRUE)
Където B2:B10 е обхватът на източника, а вторият аргумент ( by_col ) е FALSE или се пропуска, тъй като нашите данни са организирани в редове.
Намиране на отделни стойности, които се срещат повече от веднъж
Ако преследвате противоположна цел, т.е. искате да получите списък със стойности, които се появяват в даден диапазон повече от един път, тогава използвайте функцията UNIQUE заедно с FILTER и COUNTIF:
UNIQUE(FILTER( обхват , COUNTIF( обхват , обхват )>1))Например за извличане на различни имена, които се срещат в B2:B10 повече от веднъж, можете да използвате тази формула:
=UNIQUE(FILTER(B2:B10, COUNTIF(B2:B10, B2:B10)>1))
Как работи тази формула:
В основата на формулата е функцията FILTER, която филтрира дублиращите се записи въз основа на броя на срещите, върнат от функцията COUNTIF. В нашия случай резултатът от COUNTIF е този масив от числа:
{4;1;3;4;4;1;3;4;3}
Операцията за сравнение (>1) променя горния масив на стойности TRUE и FALSE, където TRUE представлява елементите, които се появяват повече от веднъж:
{TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE}
Този масив се предава на FILTER като включва аргумент, който указва на функцията кои стойности да включи в получения масив:
{"Андрю"; "Дейвид"; "Андрю"; "Андрю"; "Дейвид"; "Андрю"; "Дейвид"}
Както можете да забележите, оцеляват само стойностите, съответстващи на TRUE.
Горният масив отива в масив на UNIQUE и след премахване на дубликатите извежда крайния резултат:
{"Андрей"; "Давид"}
Съвет. По подобен начин можете да филтрирате уникални стойности, които се срещат повече от два пъти (>2), повече от три пъти (>3) и т.н. За целта просто променете числото в логическото сравнение.
Намиране на уникални стойности в няколко колони (уникални редове)
В случаите, когато искате да сравните две или повече колони и да върнете уникалните стойности между тях, включете всички целеви колони в масив аргумент.
Например, за да върнем уникалното име (колона А) и фамилия (колона Б) на победителите, въвеждаме тази формула в E2:
=UNIQUE(A2:B10)
Натискането на клавиша Enter води до следните резултати:
За да получите уникални редове , т.е. записите с уникалната комбинация от стойности в колони A, B и C, това е формулата, която трябва да се използва:
=UNIQUE(A2:C10)
Удивително просто, нали? :)
Получаване на списък с уникални стойности, подредени по азбучен ред
Как обикновено подреждате по азбучен ред в Excel? Точно така, като използвате вградената функция за сортиране или филтриране. Проблемът е, че трябва да подреждате отново всеки път, когато изходните данни се променят, тъй като за разлика от формулите на Excel, които се преизчисляват автоматично при всяка промяна в работния лист, функциите трябва да се прилагат отново ръчно.
С въвеждането на функциите за динамични масиви този проблем отпадна! Това, което трябва да направите, е просто да изкривите функцията SORT около обикновена формула UNIQUE, както е показано по-долу:
СОРТИРАНЕ(UNIQUE(масив))Например за извличане на уникални стойности в колони от A до C и подреждане на резултатите от A до Z използвайте тази формула:
=SORT(UNIQUE(A2:C10))
В сравнение с горния пример изходът е много по-лесен за възприемане и работа. Например можем ясно да видим, че Андрю и Дейвид са били победители в два различни спорта.
Съвет. В този пример подредихме стойностите в колона 1 от A до Z. Това са настройките по подразбиране на функцията SORT, затова опцията sort_index и sort_order Ако искате да сортирате резултатите по някоя друга колона или в различен ред (от Z към A или от най-голям към най-малък), задайте втория и третия аргумент, както е обяснено в урока за функцията SORT.
Намиране на уникални стойности в няколко колони и обединяване в една клетка
Когато търсите в няколко колони, по подразбиране функцията UNIQUE на Excel извежда всяка стойност в отделна клетка. Може би ще ви е по-удобно резултатите да са в една клетка?
За да постигнете това, вместо да се позовавате на целия диапазон, използвайте амперсанда (&), за да съедините колоните и да поставите желания разделител между тях.
Като пример, обединяваме първите имена в A2:A10 и фамилните имена в B2:B10, като разделяме стойностите с интервал (" "):
=UNIQUE(A2:A10&" "&B2:B10)
В резултат на това получаваме списък с пълни имена в една колона:
Получаване на списък с уникални стойности въз основа на критерии
За да извлечете уникални стойности с условие, използвайте функциите UNIQUE и FILTER на Excel заедно:
- Функцията ФИЛТЪР ограничава данните само до стойности, които отговарят на условието.
- Функцията UNIQUE премахва дубликатите от филтрирания списък.
Това е общата версия на формулата за филтрирани уникални стойности:
UNIQUE(FILTER(масив, criteria_range = критерии ))За този пример нека получим списък на победителите в определен спорт. Като начало въвеждаме спорта, който ни интересува, в някоя клетка, например F1. И след това използваме формулата по-долу, за да получим уникалните имена:
=UNIQUE(FILTER(A2:B10, C2:C10=F1))
Където A2:B10 е диапазонът за търсене на уникални стойности, а C2:C10 е диапазонът за проверка на критериите.
Филтриране на уникални стойности въз основа на множество критерии
За да филтрирате уникални стойности с две или повече условия, използвайте изразите, показани по-долу, за да конструирате необходимите критерии за функцията FILTER:
UNIQUE(FILTER(масив, ( criteria_range1 = критерии1 ) * ( criteria_range2 = критерии2 )))Резултатът от формулата е списък с уникални записи, за които всички посочени условия са TRUE (верни). В Excel това се нарича логика AND.
За да видите формулата в действие, нека получим списък с уникални победители в спорта в G1 (критерий 1) и под възрастта в G2 (критерий 2).
При диапазон на източника в A2:B10, спортове в C2:C10 (критерии_обхват 1) и възрасти в D2:D10 (критерии_обхват 2), формулата има следния вид:
=UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
И връща точно резултатите, които търсим:
Как работи тази формула:
Ето обяснение на логиката на формулата на високо ниво:
В включва Резултатът от всеки логически израз е масив от стойности TRUE и FALSE. Умножаването на масивите превръща логическите стойности в числа и създава масив от 1 и 0. Тъй като умножаването по нула винаги дава нула, само записите, които отговарят на всички условия, имат 1 в крайния масив.функцията филтрира елементите, съответстващи на 0, и предава резултатите на UNIQUE.
За повече информация вижте Филтриране с няколко критерия с помощта на логиката AND.
Филтриране на уникални стойности с множество критерии OR
За да получите списък с уникални стойности въз основа на няколко критерия OR, т.е. когато този или онзи критерий е TRUE, добавете логическите изрази, вместо да ги умножавате:
UNIQUE(FILTER(масив, ( criteria_range1 = критерии1 ) + ( criteria_range2 = критерии2 )))Например, за да покажете победителите в Футбол или Хокей , можете да използвате тази формула:
=UNIQUE(FILTER(A2:B10, (C2:C10="Футбол") + (C2:C10="Хокей"))
Ако е необходимо, разбира се, можете да въведете критериите в отделни клетки и да се позовавате на тези клетки, както е показано по-долу:
=UNIQUE(FILTER(A2:B10, (C2:C10=G1) + (C2:C10=G2))
Как работи тази формула:
Точно както при тестването на няколко критерия AND, поставяте няколко логически израза в включва аргумент на функцията FILTER, всеки от които връща масив от стойности TRUE и FALSE. Когато тези масиви се сумират, елементите, за които един или повече критерии са TRUE, ще имат стойност 1, а елементите, за които всички критерии са FALSE, ще имат стойност 0. В резултат на това всеки запис, който отговаря на което и да е условие, влиза в масива, който се предава на UNIQUE.
За повече информация вижте Филтриране с няколко критерия с помощта на логиката OR.
Получаване на уникални стойности в Excel с игнориране на празните места
Ако работите с набор от данни, който съдържа пропуски, списъкът с уникати, получен с обикновена формула, вероятно ще съдържа празна клетка и/или нулева стойност. Това се случва, тъй като функцията UNIQUE на Excel е проектирана да връща всички различни стойности в даден диапазон, включително празни. Така че, ако изходният ви диапазон съдържа както нули, така и празни клетки, списъкът с уникати ще съдържа 2 нули, едната от които представлява празна клетка.Освен това, ако изходните данни съдържат празни низове, върнати от някоя формула, списъкът uique ще включва и празен низ (""), който визуално изглежда като празна клетка:
За да получите списък с уникални стойности без празни места, трябва да направите следното:
- Филтрирайте празните клетки и празните низове с помощта на функцията FILTER.
- Използвайте функцията UNIQUE, за да ограничите резултатите само до уникални стойности.
В общ вид формулата изглежда по следния начин:
UNIQUE(FILTER( обхват , обхват ""))В този пример формулата в D2 е:
=UNIQUE(FILTER(B2:B12, B2:B12""))
В резултат на това Excel връща списък с уникални имена без празни клетки:
Забележка. В случай че оригиналните данни съдържат нули , една нулева стойност ще бъде включена в уникалния списък.
Намиране на уникални стойности в определени колони
Понякога може да искате да извлечете уникални стойности от две или повече колони, които не са съседни една на друга. Понякога може да искате да промените реда на колоните в получения списък. И двете задачи могат да бъдат изпълнени с помощта на функцията CHOOSE.
UNIQUE(CHOOSE({1,2,...}, обхват1 , обхват2 ))Да предположим, че от нашата примерна таблица искате да получите списък с победителите въз основа на стойностите в колони А и В и да подредите резултатите в този ред: първо спорт (колона В), а след това име на спортист (колона А). За да го направите, съставяме тази формула:
=UNIQUE(CHOOSE({1,2}, C2:C10, A2:A10))
И получавате следния резултат:
Как работи тази формула:
Функцията CHOOSE връща двумерен масив от стойности от посочените колони. В нашия случай тя също така разменя реда на колоните.
{"Баскетбол", "Андрю"; "Баскетбол", "Бети"; "Волейбол", "Дейвид"; "Баскетбол", "Андрю"; "Хокей", "Андрю"; "Футбол", "Робърт"; "Волейбол", "Дейвид"; "Хокей", "Андрю"; "Баскетбол", "Дейвид"}
От горния масив функцията UNIQUE връща списък с уникални записи.
Намиране на уникални стойности и обработка на грешки
Формулите UNIQUE, които разгледахме в този урок, работят перфектно... при условие че има поне една стойност, която отговаря на зададените критерии. Ако формулата не намери нищо, се появява грешка #CALC!
За да предотвратите това, просто обвийте формулата си с функцията IFERROR.
Например, ако не са намерени уникални стойности, отговарящи на критериите, можете да не показвате нищо, т.е. празен низ (""):
=IFERROR(UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
Или можете ясно да информирате потребителите, че не са намерени никакви резултати:
=IFERROR(UNIQUE(FILTER(A2:B10, (C2:C10=G1) * (D2:D10
Функцията UNIQUE на Excel не работи
Както видяхте, появата на функцията UNIQUE направи намирането на уникални стойности в Excel невероятно лесно. Ако изведнъж формулата ви доведе до грешка, най-вероятно тя е една от следните.
#NAME? грешка
Това се случва, ако използвате формула UNIQUE във версия на Excel, в която тази функция не се поддържа.
Понастоящем функцията UNIQUE е налична само в Excel 365 и 2021. Ако имате друга версия, може да намерите подходящо решение в този урок: Как да получите уникални стойности в Excel 2019, Excel 2016 и по-ранни версии.
Грешката #NAME? в поддържаните версии показва, че името на функцията е изписано неправилно.
Грешка #SPILL
Появява се, ако една или повече клетки в диапазона на разливане не са напълно празни.
За да поправите грешката, просто изчистете или изтрийте непразните клетки. За да видите кои точно клетки пречат, щракнете върху индикатора за грешка и след това щракнете върху Изберете пречещи клетки . За повече информация вижте #SPILL! грешка в Excel - причини и поправки.
Ето как да намерите уникални стойности в Excel. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!
Практическа работна тетрадка за изтегляне
Примери за формула за уникални стойности в Excel (.xlsx файл)