我正在尝试编写一个Excel公式,用于测量使用格式0,000在文本中写入1000到9999之间的数字的次数。 (这用于从我们的网站上阅读旧内容,并测量有多少页面与新的样式指南不一致。)以下是我到目前为止的内容:
=count(search(text(1000,"0,000"),G17))
如果内容中的文本为1,000,则此公式有效,但显然,如果文本为1,001则不行。
我不知道如何进入该范围。我认为它应该去1000的位置,但我尝试的都没有。
有谁知道怎么做?
答案 0 :(得分:1)
如果G列中基于文本的数字值介于0和999,999之间,那么这应该返回所有基于文本的数字的计数,如果它们实际上是数字,则数字值介于1000和9999之间。
=SUMPRODUCT(COUNTIF(G:G, {"1,*","2,*","3,*","4,*","5,*","6,*","7,*","8,*","9,*"}))
另一种方法是1,000到9,999之间的任何长度都是5。
=SUMPRODUCT(--(LEN(G:G)=5))
答案 1 :(得分:0)
如果您将以下代码添加到VBA编辑器中的新“模块”,您将可以将其作为工作表函数进行访问。
我没有测试过这么多,但它对我的例子有用。
Public Function RESearch(SourceText) As Integer
Dim REO As Object: Set REO = CreateObject("VBScript.RegExp")
REO.Pattern = "(\d{1},\d{3})"
REO.Global = True
REO.IgnoreCase = False
REO.MultiLine = True
Dim Matches As Variant
Set Matches = REO.Execute(SourceText)
RESearch = Matches.Count
Set REO = Nothing
End Function
这会在工作簿中添加一个“RESearch”函数,并且应该返回与该模式匹配的所有数字的计数。
答案 2 :(得分:0)
试试这个:
=COUNTIF(G:G,"?,???")