Excel: преброяване на клетките, съдържащи определен текст (точно и частично съвпадение)

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

Урокът показва как да преброите броя на клетките с определен текст в Excel. Ще намерите примери за формули за точно съвпадение, частично съвпадение и филтрирани клетки.

Миналата седмица разгледахме как да преброим клетките с текст в Excel, т.е. всички клетки с какъвто и да е текст. Когато анализирате големи пакети от информация, може да искате да знаете колко клетки съдържат определен текст. В този урок е обяснено как да го направите по прост начин.

    Как да преброите клетките с определен текст в Excel

    Microsoft Excel разполага със специална функция за условно броене на клетки - функцията COUNTIF. Всичко, което трябва да направите, е да предоставите целевия текстов низ в критерии аргумент.

    Ето една обща формула на Excel за преброяване на броя на клетките, съдържащи определен текст:

    COUNTIF (обхват, " текст ")

    Следващият пример я показва в действие. Да предположим, че имате списък с идентификатори на елементи в A2:A10 и искате да преброите броя на клетките с конкретен идентификатор, например "AA-01". Въведете този низ във втория аргумент и ще получите тази проста формула:

    =COUNTIF(A2:A10, "AA-01")

    За да дадете възможност на потребителите да броят клетките с даден текст, без да е необходимо да променят формулата, въведете текста в предварително определена клетка, например D1, и посочете референтната клетка:

    =COUNTIF(A2:A10, D1)

    Забележка. Функцията COUNTIF на Excel е без значение на големи и малки букви , което означава, че тя не прави разлика между големи и малки букви. За да третирате по различен начин големите и малките букви, използвайте тази формула, която отчита големи и малки букви.

    Как да преброим клетките с определен текст (частично съвпадение)

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

    За да намерите броя на клетките, които съдържат определен текст като част от съдържанието си, използвайте заместващи символи в критериите си, а именно звездичка (*), която представлява всяка последователност или символи. В зависимост от целта ви, формулата може да изглежда по следния начин.

    Преброяване на клетките, които съдържат определен текст в самото начало :

    COUNTIF (обхват, " текст *")

    Преброяване на клетките, които съдържат определен текст в всяка позиция :

    COUNTIF(обхват, "* текст *")

    Например, за да откриете колко клетки в диапазона A2:A10 започват с "AA", използвайте тази формула:

    =COUNTIF(A2:A10, "AA*")

    За да получите броя на клетките, съдържащи "AA" на всяка позиция, използвайте тази:

    =COUNTIF(A2:A10, "*AA*")

    За да направите формулите по-динамични, заменете твърдо кодираните низове с препратки към клетките.

    Преброяване на клетките, които започват с определен текст:

    =COUNTIF(A2:A10, D1& "*")

    Преброяване на клетките с определен текст навсякъде в тях:

    =COUNTIF(A2:A10, "*"&D1&"*")

    Резултатите са показани на снимката на екрана по-долу:

    Преброяване на клетките, които съдържат определен текст (с отчитане на големи и малки букви)

    В случаите, когато трябва да разграничите главни и малки букви, функцията COUNTIF няма да работи. В зависимост от това дали търсите точно или частично съвпадение, ще трябва да съставите различна формула.

    Формула за броене на клетките с определен текст (точно съвпадение)

    За да преброим броя на клетките с определен текст, в които се разпознава корпусът на текста, ще използваме комбинация от функциите SUMPRODUCT и EXACT:

    SUMPRODUCT(--EXACT(" текст ", обхват ))

    Как работи тази формула:

    • EXACT сравнява всяка клетка в диапазона с текста на извадката и връща масив от стойности TRUE и FALSE, като TRUE представя точните съвпадения, а FALSE - всички останали клетки. двоен единичен ) превръща TRUE и FALSE в 1 и 0.
    • SUMPRODUCT сумира всички елементи на масива. Тази сума е броят на 1, което е броят на съвпаденията.

    Например, за да получите броя на клетките в A2:A10, които съдържат текста в D1 и обработват големите и малките букви като различни символи, използвайте тази формула:

    =SUMPRODUCT(--EXACT(D1, A2:A10))

    Формула за броене на клетки с определен текст, чувствителна към големи букви (частично съвпадение)

    За да създадем формула, чувствителна към малкия и големия размер на буквите, която може да намери интересуващ ни низ от текст навсякъде в клетката, използваме 3 различни функции:

    SUMPRODUCT(--(ISNUMBER(FIND(" текст ", обхват ))))

    Как работи тази формула:

    • Функцията FIND търси целевия текст във всяка клетка от диапазона с отчитане на малкия и големия размер на буквите. Ако успее, функцията връща позицията на първия символ, в противен случай - грешката #VALUE!. За по-голяма яснота не е необходимо да знаем точната позиция, всяко число (за разлика от грешката) означава, че клетката съдържа целевия текст.
    • Функцията ISNUMBER обработва масива от числа и грешки, върнати от FIND, и преобразува числата в TRUE, а всичко останало - във FALSE. Двойният едночлен (--) превръща логическите стойности в единици и нули.
    • SUMPRODUCT сумира масива от 1 и 0 и връща броя на клетките, които съдържат зададения текст като част от съдържанието си.

    За да изпробваме формулата върху реални данни, нека открием колко клетки в A2:A10 съдържат подниза, въведен в D1:

    =SUMPRODUCT(--(ISNUMBER(FIND(D1, A2:A10))))

    И това връща брой от 3 (клетки A2, A3 и A6):

    Как да преброите филтрираните клетки с определен текст

    Да броите видими елементи във филтриран списък, ще трябва да използвате комбинация от 4 или повече функции в зависимост от това дали искате точно или частично съвпадение. За да улесним проследяването на примерите, нека първо разгледаме набързо изходните данни.

    Предполагаме, че имате таблица с Идентификатори на поръчките в колона В и Количество в колона C, както е показано на изображението по-долу. В момента се интересувате само от количества, по-големи от 1, и сте филтрирали таблицата си по съответния начин. Въпросът е - как да преброите филтрираните клетки с определен идентификатор?

    Формула за преброяване на филтрирани клетки с определен текст (точно съвпадение)

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

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(B2:B10=F1))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(B2:B10=F1))

    Където F1 е примерният текст, а B2:B10 са клетките за преброяване.

    Как работят тези формули:

    В основата на двете формули са 2 проверки:

    1. Идентифицирайте видимите и скритите редове. За целта използвайте функцията SUBTOTAL с function_num За да предоставите всички препратки към отделните клетки на SUBTOTAL, използвайте или INDIRECT (в първата формула), или комбинация от OFFSET, ROW и MIN (във втората формула). Тъй като целта ни е да открием видими и скрити редове, няма значение към коя колона ще се препрати (А в нашия пример). Резултатът от тази операция е масив от 1 и 0, където единиците представляват видими редове.редове и нули - скрити редове.
    2. За тази цел сравнете примерния текст (F1) с обхвата от клетки (B2:B10). Резултатът от тази операция е масив от стойности TRUE и FALSE, които се превръщат в 1 и 0 с помощта на двойния унарен оператор.

    Накрая функцията SUMPRODUCT умножава елементите на двата масива на същите позиции и след това сумира получения масив. Тъй като умножението по нула дава нула, само клетките, които имат 1 в двата масива, имат 1 в крайния масив. Сумата от 1 е броят на филтрираните клетки, които съдържат зададения текст.

    Формула за преброяване на филтрирани клетки с определен текст (частично съвпадение)

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

    =SUMPRODUCT(SUBTOTAL(103, INDIRECT("A"&ROW(A2:A10))), --(ISNUMBER(FIND(F1, B2:B10))))

    =SUMPRODUCT(SUBTOTAL(103, OFFSET(A2:A10, ROW(A2:A10) - MIN(ROW(A2:A10)),,1)), --(ISNUMBER(FIND(F1, B2:B10))))

    В резултат на това формулите ще намерят даден текстов низ на всяка позиция в клетката:

    Забележка. Функцията SUBTOTAL с 103 в function_num идентифицира всички скрити клетки, филтрирани и скрити ръчно. В резултат на това горните формули отчитат само видими клетки независимо от това колко невидими клетки са били скрити. За да изключите само филтрираните клетки, но да включите ръчно скритите, използвайте 3 за function_num .

    Ето как да преброите броя на клетките с определен текст в Excel. Благодаря ви, че прочетохте, и се надявам да се видим в нашия блог следващата седмица!

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

    Формули на Excel за броене на клетки с определен текст

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