我有一个姓名列表,已从另一个数据库导出到 Excel 中。列表中感兴趣的名称以红色字体突出显示。我想要一种计算方法,即 John Smith 在一栏中总共出现 5 次,但 5 次中的 3 次,他的名字以红色字体突出显示。所以我想看看有多少个他的名字出现红色。
我知道如何搜索他名字的所有实例,例如=COUNTIF(A1:A100,"约翰·史密斯")
我还获得了帮助,创建了一个 VB 函数,该函数使用以下方法对工作表中所有红色 (=SumRed)(一旦指定颜色索引)的值进行计数:
Function SumRed(MyRange As Range)
SumRed = 0
For Each cell In MyRange
If cell.Font.Color = 255 Then
SumRed = SumRed + cell.Value
End If
Next cell
End Function
我只是找不到结合这两个计数条件的方法。任何帮助将不胜感激!
最佳答案
您不需要 VBA,但如果您需要 VBA 解决方案,那么您可以选择其他两个答案中的任何一个。 :)
我们可以使用Excel公式来查找单元格的字体颜色。请参阅此示例。
我们将使用 XL4 宏。
- 打开名称管理器
- 给出一个名字。说
FontColor
- 在“引用
=GET.CELL(24,OFFSET(INDIRECT("RC",FALSE),0,-1))
”中键入此公式然后单击“确定”
公式解释
语法是
GET.CELL(type_num, reference)
Type_num is a number that specifies what type of cell information you want.
reference is the cell reference
在上面的公式中,数字24
为您提供单元格中第一个字符的字体颜色,作为 1 到 56 范围内的数字。如果字体颜色是自动的,则返回 0。 这就是缺点。确保整个字体颜色为红色。我们本可以使用 64,但它无法正常工作。
OFFSET(INDIRECT("RC",FALSE),0,-1)
指的是左侧紧邻的单元格。
现在在单元格中输入此公式 =IF(AND(Fontcolor=3,B1="John Smith"),1,0)
并将其复制下来。
注意:必须在包含文本的单元格右侧输入公式。
屏幕截图
编辑(2013 年 10 月 12 日)
要对具有特定背景颜色的单元格进行计数,请参阅 THIS链接
关于vba - excel中如何统计不同字体颜色的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15887257/