如何搜索以特定格式编写的范围内的数字?

时间:2015-07-13 23:25:17

标签: excel excel-formula

我正在尝试编写一个Excel公式,用于测量使用格式0,000在文本中写入1000到9999之间的数字的次数。 (这用于从我们的网站上阅读旧内容,并测量有多少页面与新的样式指南不一致。)以下是我到目前为止的内容:

=count(search(text(1000,"0,000"),G17))

如果内容中的文本为1,000,则此公式有效,但显然,如果文本为1,001则不行。

我不知道如何进入该范围。我认为它应该去1000的位置,但我尝试的都没有。

有谁知道怎么做?

3 个答案:

答案 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,"?,???")