格雷厄姆已经在Excel中为他的联赛创建了一个球员姓名矩阵。

单元格B2:H2包含播放器的名称,单元格A3:A9也包含。在矩阵的每个交点处,格雷厄姆都放置一个“ W”或“ L”来表示对战是否会导致每一行中的玩家获胜。如果玩家多次玩另一个人,则每个游戏单元中都包含“ W”或“ L”。格雷厄姆想知道从第一列开始可以使用什么公式来表示每个玩家的数量或获胜的数目。

您可以通过多种方式获得所需的信息。一种是使用这种类型的公式:

=LEN(SUBSTITUTE(B3&C3&D3&E3&F3&G3&H3,"L",""))

此公式计算第3行中非L字符的数量,即获胜的数量。它通过串联B3:H3的内容,然后使用SUBSTITUTE函数删除所有L来做到这一点。这样就留下了由LEN函数计算的Ws。您也可以按以下方式使用CONCATENATE函数以获得相同的结果:

=LEN(SUBSTITUTE(CONCATENATE(B3,C3,D3,E3,F3,G3,H3),"L",""))

要计算损失数量,只需将每个公式中的“ L”替换为“ W”。

您还可以使用数组公式,该公式允许您指定要检查的单元格范围,而不需要指定每个单元格:

=SUM(LEN(SUBSTITUTE(B3:H3, "L","")))

通过按Shift + Ctrl + Enter输入的此数组公式将返回B3:H3范围内的获胜数(W个字符)。

最后,您可以使用用户定义的函数来返回给定范围内特定字符的出现。以下宏可以解决问题:

Function CharNums(r, chr) As Integer     Dim c As Range     Dim strX As String     Dim J As Integer

Application.Volatile     CharNums = 0     For Each c In r.Cells         strX = c.Value         For J = 1 To Len(strX)

If Mid(strX, J, 1) = chr Then CharNums = CharNums + 1         Next J     Next c End Function

要使用该函数,您可以在工作表中使用如下公式:

=CharNums(B3:H3;"W")

该函数返回范围内大写W字符的数量。

所有其他字符(包括小写的w字符)都将被忽略。要计算损失,只需在公式中用L代替W。

注意:

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

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

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