首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带有通配符的Excel区分大小写的COUNTIF :本机函数?

带有通配符的Excel区分大小写的COUNTIF :本机函数?
EN

Stack Overflow用户
提问于 2016-06-14 09:52:36
回答 1查看 4.5K关注 0票数 2

我试图找到一个本机Excel函数(或它的组合),它将精确地以COUNTIF的方式运行(即将处理通配符),但区分大小写。

我已经成功地使用了SUMPRODUCT/确切函数,它确实执行区分大小写的计数:但是问题是我无法让这些函数识别通配符。

也许最好举个例子来说明我到底需要什么。我想取一个范围,并搜索文本"TBA“出现的次数,其中字母必须是大写字母,但它们可以出现在单元格中的任何地方。例如:

TBA -应该算

tbA -不应该算在内

somethingTBAsomething -应该计算

somethingtBasomething -不应该算在内

代码语言:javascript
复制
=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

为了解决我的问题,我编写了一个用户定义的函数如下:

代码语言:javascript
复制
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/确切号相同的方式)来完成我想要的任务吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-14 10:07:27

因为FIND区分大小写,所以可以使用:

代码语言:javascript
复制
=COUNT(INDEX(FIND("TBA",A1:A7),))

索引函数只在那里,所以您不必数组-输入公式。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37808656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档