Получаване на списък с уникални стойности в Excel & извличане на уникални редове

  • Споделя Това
Michael Brown

Това е последната част от поредицата "Уникални стойности в 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, когато броят на клетките, в които сте копирали формулата, надвишава броя на отделните стойности в изходния списък.

    А сега нека да разделим основната част от нашата отличителна формула:

    1. 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".

    2. 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(array, row_num, [column_num]) връща стойност в масив въз основа на посочените номера на редове и (по избор) колони.
  • В този пример 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

    Ако не искате да губите време, за да разгадавате тънкостите на формулите за отчетливи стойности, можете бързо да получите списък с отчетливи стойности, като използвате разширения филтър.

    1. Изберете колоната с данни, от която искате да извлечете отделни стойности.
    2. Преминете към Данни tab> Сортиране и филтриране и щракнете върху Разширен бутон:

  • В Разширен филтър диалогов прозорец, изберете следните опции:
    • Проверете Копиране на друго място радио бутон.
    • В Обхват на списъка проверете дали обхватът на източника е показан правилно.
    • В Копиране в кутия , въведете най-горната клетка на целевия диапазон. Моля, имайте предвид, че можете да копирате филтрираните данни само в активен лист .
    • Изберете Само уникални записи

  • Накрая щракнете върху ОК и проверете резултата:
  • Обърнете внимание, че въпреки че опцията на разширения филтър е наречена " Само уникални записи ", той извлича различни стойности , т.е. уникални стойности и първи случаи на дублиращи се стойности.

    Извличане на уникални и различни редове с Duplicate Remover

    В последната част на този урок ще ви покажа нашето собствено решение за намиране и извличане на различни и уникални стойности в листове на Excel. Това решение съчетава гъвкавостта на формулите на Excel и простотата на разширения филтър. Освен това то предоставя няколко уникални функции, като например:

    • Намиране и извличане уникални/отделни редове въз основа на стойности в една или повече колони.
    • Намерете , подчертайте , и копие уникални стойности на всяко друго място в същата или друга работна книга.

    А сега нека видим инструмента за премахване на дубликати в действие.

    Да предположим, че имате обобщаваща таблица, създадена чрез консолидиране на данни от няколко други таблици. Очевидно тази обобщаваща таблица съдържа много дублиращи се редове и задачата ви е да извлечете уникални редове, които се появяват в таблицата само веднъж, или различни редове, включващи уникални и 1-ви дублиращи се случаи. Така или иначе, с добавката Duplicate Remover работата се извършва в 5 бързи стъпки.

    1. Изберете която и да е клетка в таблицата с източника и щракнете върху Премахване на дубликати на бутона Данни от Ablebits в раздела Dedupe група.

    Съветникът за премахване на дубликати ще се стартира и ще избере цялата таблица. Следваща за да преминете към следващата стъпка.

  • Изберете типа стойност, който искате да намерите, и щракнете върху Следваща :
    • Уникален
    • Уникални +1-ви случаи (различни)

    В този пример се стремим да извлечем уникални редове които се появяват в таблицата на източника само веднъж, затова избираме Уникален опция:

    Съвет. Както можете да видите на горния екран, има и 2 опции за дублиращи се стойности , просто го имайте предвид, ако се наложи да извадите някой друг работен лист.

  • Изберете една или повече колони, които да бъдат проверени за уникални стойности.

    В този пример искаме да намерим уникални редове въз основа на стойностите във всички 3 колони ( Номер на поръчката , Първо име и Фамилия ), затова избираме всички.

  • Изберете действието, което да извършите върху намерените уникални стойности. На разположение са следните опции:
    • Подчертаване на уникални стойности
    • Избиране на уникални стойности
    • Идентифициране в колона за състояние
    • Копиране на друго място

    Тъй като извличаме уникални редове, изберете Копиране на друго място и след това посочете къде точно искате да ги копирате - активен лист (изберете Потребителско местоположение и посочете най-горната клетка на целевия диапазон), нов работен лист или нова работна книга.

    В този пример ще изберем новия лист:

  • Щракнете върху Завършете и сте готови!
  • Хареса ли ви този бърз и лесен начин за получаване на списък с уникални стойности или редове в Excel? Ако е така, ви препоръчвам да изтеглите версията за оценка по-долу и да я изпробвате. Duplicate Remover, както и всички други инструменти за спестяване на време, които имаме, са включени в Ultimate Suite for Excel.

    Налични изтегляния

    Намиране на уникални стойности в Excel - примерна работна книга (.xlsx файл)

    Ultimate Suite - версия за оценка (.exe файл)

    Майкъл Браун е отдаден технологичен ентусиаст със страст към опростяване на сложни процеси с помощта на софтуерни инструменти. С повече от десетилетие опит в технологичната индустрия, той е усъвършенствал уменията си в Microsoft Excel и Outlook, както и в Google Sheets и Docs. Блогът на Майкъл е посветен на споделянето на неговите знания и опит с други, предоставяйки лесни за следване съвети и уроци за подобряване на продуктивността и ефективността. Независимо дали сте опитен професионалист или начинаещ, блогът на Michael предлага ценни прозрения и практически съвети за извличане на максимума от тези основни софтуерни инструменти.