在工作中,Mark经常需要计算所选单元格范围内的逗号数。他找不到执行此类型任务的Excel函数,并且想知道宏是否可以解决问题。

尽管没有可以产生所需计数的工作表函数,但可以使用一个或两个公式。如果您只想知道其中包含至少一个逗号的单元格的数量,则下面的公式将很好地起作用:

=COUNTIF(A1:A10,",")

如果相反,如果每个单元格可能有多个逗号,则需要找出该范围内的逗号数量,那么您需要使用其他公式:

=SUM(LEN(A1:A10))-SUM(LEN(SUBSTITUTE(A1:A10,",","")))

该公式应作为数组公式输入,这意味着您应使用Ctrl + Shift + Enter输入公式。如果需要导出其他范围的计数,只需在公式中的两个位置更改范围。

如果您愿意,还可以创建一个用户定义的函数来计算逗号的数量。有多种方法可以完成这样的任务。以下仅是一个示例。

Function CountComma(rng As Range)

Dim iCount As Integer     Dim rCell As Range     Dim sTemp As String

Application.Volatile     iCount = 0     For Each rCell In rng         sTemp = Application.WorksheetFunction. _           Substitute(rCell.Value, ",", "")

iCount = iCount + _           (Len(rCell.Value) - Len(sTemp))

Next     CountComma = iCount     Set rCell = Nothing     Set rng = Nothing End Function

为了使用工作表中的功能,请在单元格中输入以下内容:

=CountComma(A1:A10)

到目前为止描述的所有这些方法都将计算单元格中实际存在的逗号。他们将不计算由于格式化而出现在单元格中的逗号。例如,如果一个数字在单元格中显示为“ 1,234”,则由于单元格的格式化方式,逗号很有可能在其中;它不是真的在单元格中。

这样的逗号不计算在内。

当然,如果您只需要知道逗号的数量,而又不需要工作表中的值,则可以一起绕过公式和宏的使用。请遵循以下一般步骤:

。选择要在其中计算逗号的单元格范围。

。按Ctrl + H以显示“查找和替换”对话框的“替换”选项卡。

。在“查找内容”框中,输入逗号。

。在“替换为”框中,输入逗号。

。单击全部替换。

Excel进行替换,并显示一个对话框,其中显示进行了多少次替换。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3460)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: