2016-06-14 9 views
0

Я пытаюсь найти собственную функцию Excel (или их комбинацию), которая будет вести себя точно в виде COUNTIF (например, будет обрабатывать подстановочные знаки), но учитывает регистр.Excel с учетом регистра COUNTIF с подстановочными знаками: нативная функция?

Я успешно использовал функции SUMPRODUCT/EXACT, которые действительно выполняют регистр с учетом регистра: однако проблема в том, что я не могу заставить их распознавать подстановочные знаки.

Возможно, лучше привести пример того, что мне действительно нужно. Я хочу взять диапазон и искать количество вхождений текста «TBA», где буквы должны быть в столицах, но они могут появляться в любом месте ячейки. Например:

TBA - должны рассчитывать

TBA - не должны рассчитывать

somethingTBAsomething - должны рассчитывать

somethingtBasomething - не должны рассчитывать

=COUNTIF(A1:A10,"*TBA*") 
' Correctly accounts for wildcards (*), but isn't case-sensitive 

=SUMPRODUCT(--EXACT(A1:A10,"TBA")) 
' Is case-sensitive, but only finds whole cell values which match 

=SUMPRODUCT(--EXACT(A1:A10,"*TBA*")) 
' Doesn't recognise * as a wildcard, because it's 
' literally only searching for cells with asterisks 
' either side of the letters 

Чтобы решить мою проблему у меня есть записал пользовательскую функцию следующим образом:

Option Compare Binary 

' Case-sensitive COUNTIF 
Function CS_Countif(rng As Range, str As String) As Long 
    Dim Matches As Long, cl As Range 
    For Each cl In rng 
     If InStr(cl.Value, str) > 0 Then Matches = Matches + 1 
    Next cl 
    CS_Countif = Matches 
End Function 

Однако эта функция замедляет вычисление электронной таблицы, и есть заметная задержка каждый раз, когда обновляется одна из ячеек соответствующего диапазона.

Может ли кто-нибудь определить комбинацию собственных функций Excel (так же, как SUMPRODUCT/EXACT), которые будут делать то, что я ищу? Благодарю.

ответ

2

Поскольку FIND чувствителен к регистру, вы можете использовать это:

=COUNT(INDEX(FIND("TBA",A1:A7),)) 

Функция ИНДЕКС только там, так что вам не придется массив ввести формулу.

+0

Легко, когда вы знаете, как, а? Работает отлично - спасибо :) –

+0

Обычно это! :) – Rory

 Смежные вопросы

  • Нет связанных вопросов^_^