Съдържание
Това е последната част от поредицата "Уникални стойности в Excel", в която се показва как да получите списък с различни/ уникални стойности в колона, като използвате формула, и как да настроите тази формула за различни набори от данни. Ще научите също как бързо да получите списък с различни стойности, като използвате разширения филтър на Excel, и как да извлечете уникални редове с програмата за премахване на дубликати.
В няколко скорошни статии обсъдихме различни методи за преброяване и намиране на уникални стойности в Excel. Ако сте имали възможност да прочетете тези уроци, вече знаете как да получите уникален или различен списък чрез идентифициране, филтриране и копиране. Но това е малко дълъг и далеч не единственият начин за извличане на уникални стойности в Excel. Можете да го направите много по-бързо, като използвате специална формула и след малкоЩе ви покажа тази и няколко други техники.
Съвет: За бързо получаване на уникални стойности в последната версия на Excel 365, която поддържа динамични масиви, използвайте функцията UNIQUE, както е обяснено в свързания по-горе урок.
Как да получите уникални стойности в Excel
За да избегнем объркване, нека първо се споразумеем какво наричаме уникални стойности в Excel. Уникални стойности са стойностите, които съществуват в списъка само веднъж. Например:
За да извлечете списък с уникални стойности в Excel, използвайте една от следните формули.
Масив формула за уникални стойности (завършва се с натискане на Ctrl + Shift + Enter ):
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1,$A$2:$A$10) + (COUNTIF($A$2:$A$10, $A$2:$A$10)1), 0)), "")
Редовно формула за уникални стойности (завършва се с натискане на Enter):
=IFERROR(INDEX($A$2:$A$10, MATCH(0,INDEX(COUNTIF($B$1:B1, $A$2:$A$10)+(COUNTIF($A$2:$A$10, $A$2:$A$10)1),0,0), 0)), "")
В горните формули са използвани следните референтни стойности:
- A2:A10 - списъкът на източниците.
- B1 - най-горната клетка на уникалния списък минус 1. В този пример започваме уникалния списък в B2 и затова подаваме B1 във формулата (B2-1=B1). Ако вашият уникален списък започва, например, в клетка C3, тогава променете $B$1:B1 на $C$2:C2.
Забележка: Тъй като формулата препраща към клетката над първата клетка от уникалния списък, която обикновено е заглавието на колоната (B1 в този пример), уверете се, че заглавието ви има уникално име, което не се появява никъде другаде в колоната.
В този пример извличаме уникални имена от колона А (по-точно от диапазона A2:A20), а следващата снимка на екрана демонстрира формулата за масива в действие:
Подробното обяснение на логиката на формулата е представено в отделен раздел, а тук е описано как да използвате формулата за извличане на уникални стойности във вашите работни листове на Excel:
- Променете една от формулите в съответствие с набора от данни.
- Въведете формулата в първата клетка на уникалния списък (B2 в този пример).
- Ако използвате формулата за масиви, натиснете Ctrl + Shift + Enter . Ако сте избрали обикновената формула, натиснете клавиша Enter, както обикновено.
- Копирайте формулата надолу, колкото е необходимо, като плъзнете дръжката за запълване. Тъй като и двете формули за уникални стойности са затворени във функцията IFERROR, можете да копирате формулата до края на таблицата и тя няма да затрупа данните ви с грешки, независимо колко малко уникални стойности са били извлечени.
Как да получите различни стойности в Excel (уникални + първи дублиращи се случаи)
Както може би вече сте се досетили от заглавието на този раздел, различни стойности в Excel са всички различни стойности в даден списък, т.е. уникални стойности и първи случаи на дублиращи се стойности. Например:
За да получите отделен списък в Excel, използвайте следните формули.
Масив отделна формула (изисква се натискане на Ctrl + Shift + Enter ):
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")
Редовно отделна формула:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, INDEX(COUNTIF($B$1:B1, $A$2:$A$10), 0, 0), 0)), "")
Къде:
- A2:A10 е списъкът на източниците.
- B1 е клетката над първата клетка от различния списък. В този пример различният списък започва в клетка B2 (това е първата клетка, в която въвеждате формулата), така че се позовавате на B1.
Извличане на отделни стойности в колона, като се игнорират празните клетки
Ако списъкът ви съдържа празни клетки, току-що обсъдената формула ще върне нула за всеки празен ред, което може да е проблем. За да поправите това, подобрете още малко формулата:
Формула за извличане на масив различни стойности без празни места :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF($A$2:$A$10="",1,0), 0)), "")
Получаване на списък с различни текстови стойности, като се игнорират числата и празните места
По подобен начин можете да получите списък с различни стойности с изключение на празните клетки и клетките с числа :
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10&"") + IF(ISTEXT($A$2:$A$10)=FALSE,1,0), 0)), "")
Напомняме ви, че в горните формули A2:A10 е списъкът с източници, а B1 е клетката точно над първата клетка от различния списък.
Следващата снимка показва резултата от двете формули:
Как да извлечете различни стойности в Excel, чувствителни към малкия и големия размер на буквите
Когато работите с данни, чувствителни към големи и малки букви, като пароли, потребителски имена или имена на файлове, може да се наложи да получите списък с различни стойности, чувствителни към големи и малки букви. За тази цел използвайте следната формула за масиви, където A2:A10 е изходният списък, а B1 е клетката над първата клетка от списъка с различни стойности:
Формула за масив за получаване на различни стойности с отчитане на малкия и големия размер на буквите (изисква натискане на Ctrl + Shift + Enter )
=IFERROR(INDEX($A$2:$A$10, MATCH(0, FREQUENCY(IF(EXACT($A$2:$A$10,TRANSPOSE($B$1:B1)), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10)), ""), MATCH(ROW($A$2:$A$10), ROW($A$2:$A$10))), 0)), "")
Как работи формулата за уникалност/различност
Този раздел е написан специално за онези любопитни и внимателни потребители на Excel, които не само искат да знаят формулата, но и да разберат напълно нейните ядки и болтове.
От само себе си се разбира, че формулите за извличане на уникални и различни стойности в Excel не са нито тривиални, нито лесни. Но ако се вгледате по-внимателно, може да забележите, че всички формули се основават на един и същ подход - използване на INDEX/MATCH в комбинация с функциите COUNTIF или COUNTIF + IF.
За нашия задълбочен анализ ще използваме формулата за масиви, която извлича списък от различни стойности, тъй като всички други формули, разгледани в този урок, са подобрения или варианти на тази основна формула:
=IFERROR(INDEX($A$2:$A$10, MATCH(0, COUNTIF($B$1:B1, $A$2:$A$10), 0)), "")
Като начало нека да отхвърлим очевидната функция IFERROR, която се използва с една единствена цел - да отстрани грешките #N/A, когато броят на клетките, в които сте копирали формулата, надвишава броя на отделните стойности в изходния списък.
А сега нека да разделим основната част от нашата отличителна формула:
- COUNTIF(обхват, критерии) връща броя на клетките в даден диапазон, които отговарят на зададено условие.
В този пример COUNTIF($B$1:B1, $A$2:$A$10) връща масив от 1 и 0 в зависимост от това дали някоя от стойностите на изходния списък ($A$2:$A$10) се появява някъде в различния списък ($B$1:B1). Ако стойността е намерена, формулата връща 1, в противен случай - 0.
По-специално в клетка B2 COUNTIF($B$1:B1, $A$2:$A$10) става:
COUNTIF("Distinct", {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"})
и се връща:
{0;0;0;0;0;0;0;0;0}
защото нито един от елементите на списъка с източници ( критерии ) се появява в обхват където функцията търси съвпадение. В този случай, обхват ($B$1:B1) се състои от един елемент - "Distinct".
MATCH(lookup_value, lookup_array, [match_type])
връща относителната позиция на стойността за търсене в масива.
В този пример стойността lookup_value е 0 и следователно:
MATCH(0,COUNTIF($B$1:B1, $A$2:$A$10), 0)
се превръща в:
MATCH(0, { 0 ;0;0;0;0;0;0;0;0},0)
и връща
защото нашата функция MATCH получава първата стойност, която е точно равна на стойността за търсене (както си спомняте, стойността за търсене е 0).
В този пример INDEX($A$2:$A$10, 1)
става:
INDEX({"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}, 1)
и връща "Ronnie".
Когато формулата се копира надолу по колоната, различният списък ($B$1:B1) се разширява, тъй като препратката към втората клетка (B1) е относителна препратка, която се променя в зависимост от относителната позиция на клетката, в която се премества формулата.
Така, когато се копира в клетка B3, COUNTIF($B$1: B1 , $A$2:$A$10) се променя на COUNTIF($B$1: B2 , $A$2:$A$10) и става:
COUNTIF({"Distinct"; "Ronnie"}, {"Ronnie"; "David"; "Sally"; "Jeremy"; "Robert"; "David"; "Robert"; "Tom"; "Sally"}), 0)), "")
и се връща:
{1;0;0;0;0;0;0;0;0}
защото в диапазона $B$1:B2 е намерен един "Ronnie".
И след това, MATCH(0,{1; 0 ;0;0;0;0;0;0;0;0},0) връща 2, защото 2 е относителната позиция на първата 0 в масива.
И накрая, INDEX($A$2:$A$10, 2)
връща стойността от втория ред, която е "David".
Съвет: За да разберете по-добре логиката на формулата, можете да изберете различни части от формулата в лентата с формули и да натиснете F9, за да видите какво означава избраната част:
Ако все още изпитвате затруднения да разберете формулата, можете да разгледате следния урок за подробно обяснение на начина на работа на връзката INDEX/MATCH: INDEX & MATCH as a better alternative to Excel VLOOKUP.
Както вече споменахме, останалите формули, разгледани в този урок, се основават на същата логика, само с няколко промени:
Формула за уникални стойности - съдържа още една функция COUNTIF, която изключва от уникалния списък всички елементи, които се появяват в изходния списък повече от веднъж: COUNTIF($A$2:$A$10, $A$2:$A$10)1
.
Формула за отчетливи стойности, която игнорира празните клетки - тук добавяте функция IF, която не позволява добавянето на празни клетки към списъка с отчетливи стойности: IF($A$2:$A$13="",1,0)
.
Формула за разграничаване на текстови стойности, без да се вземат предвид числата - използвате функцията ISTEXT, за да проверите дали дадена стойност е текст, и функцията IF, за да отхвърлите всички други типове стойности, включително празни клетки: IF(ISTEXT($A$2:$A$13)=FALSE,1,0)
.
Извличане на отделни стойности от колона с разширения филтър на Excel
Ако не искате да губите време, за да разгадавате тънкостите на формулите за отчетливи стойности, можете бързо да получите списък с отчетливи стойности, като използвате разширения филтър.
- Изберете колоната с данни, от която искате да извлечете отделни стойности.
- Преминете към Данни tab> Сортиране и филтриране и щракнете върху Разширен бутон:
- Проверете Копиране на друго място радио бутон.
- В Обхват на списъка проверете дали обхватът на източника е показан правилно.
- В Копиране в кутия , въведете най-горната клетка на целевия диапазон. Моля, имайте предвид, че можете да копирате филтрираните данни само в активен лист .
- Изберете Само уникални записи
Обърнете внимание, че въпреки че опцията на разширения филтър е наречена " Само уникални записи ", той извлича различни стойности , т.е. уникални стойности и първи случаи на дублиращи се стойности.
Извличане на уникални и различни редове с Duplicate Remover
В последната част на този урок ще ви покажа нашето собствено решение за намиране и извличане на различни и уникални стойности в листове на Excel. Това решение съчетава гъвкавостта на формулите на Excel и простотата на разширения филтър. Освен това то предоставя няколко уникални функции, като например:
- Намиране и извличане уникални/отделни редове въз основа на стойности в една или повече колони.
- Намерете , подчертайте , и копие уникални стойности на всяко друго място в същата или друга работна книга.
А сега нека видим инструмента за премахване на дубликати в действие.
Да предположим, че имате обобщаваща таблица, създадена чрез консолидиране на данни от няколко други таблици. Очевидно тази обобщаваща таблица съдържа много дублиращи се редове и задачата ви е да извлечете уникални редове, които се появяват в таблицата само веднъж, или различни редове, включващи уникални и 1-ви дублиращи се случаи. Така или иначе, с добавката Duplicate Remover работата се извършва в 5 бързи стъпки.
- Изберете която и да е клетка в таблицата с източника и щракнете върху Премахване на дубликати на бутона Данни от Ablebits в раздела Dedupe група.
Съветникът за премахване на дубликати ще се стартира и ще избере цялата таблица. Следваща за да преминете към следващата стъпка.
- Уникален
- Уникални +1-ви случаи (различни)
В този пример се стремим да извлечем уникални редове които се появяват в таблицата на източника само веднъж, затова избираме Уникален опция:
Съвет. Както можете да видите на горния екран, има и 2 опции за дублиращи се стойности , просто го имайте предвид, ако се наложи да извадите някой друг работен лист.
В този пример искаме да намерим уникални редове въз основа на стойностите във всички 3 колони ( Номер на поръчката , Първо име и Фамилия ), затова избираме всички.
- Подчертаване на уникални стойности
- Избиране на уникални стойности
- Идентифициране в колона за състояние
- Копиране на друго място
Тъй като извличаме уникални редове, изберете Копиране на друго място и след това посочете къде точно искате да ги копирате - активен лист (изберете Потребителско местоположение и посочете най-горната клетка на целевия диапазон), нов работен лист или нова работна книга.
В този пример ще изберем новия лист:
Хареса ли ви този бърз и лесен начин за получаване на списък с уникални стойности или редове в Excel? Ако е така, ви препоръчвам да изтеглите версията за оценка по-долу и да я изпробвате. Duplicate Remover, както и всички други инструменти за спестяване на време, които имаме, са включени в Ultimate Suite for Excel.
Налични изтегляния
Намиране на уникални стойности в Excel - примерна работна книга (.xlsx файл)
Ultimate Suite - версия за оценка (.exe файл)