Excel 通过格式查找单元格?

Excel 通过格式查找单元格?

countif函数有一个条件参数——如何根据单元格格式指定条件?

我有一份数学家庭作业问题列表,其中包含每页的问题编号(例如,第 12 页的行将包含数字 17 到 32,每个数字都在自己的单元格中),我想使用格式标记特殊含义:难题将以粗体显示,必答题将有黄色背景,当然,包含难题和必答题编号的单元格将以粗体显示,背景为黄色。

现在我想统计一下问题和它们的类别:假设这一页上有 16 个问题,其中 5 个很难但可选,3 个是必修的但很容易,2 个是必修的并且很难?

当然,我可以每页添加三行:一行用作“困难”标志,一行用作“强制”标志。如果同时启用了“困难”和“强制”标志,则第三行将是 1。但我希望 Excel 工作表看起来赏心悦目,没有这种混乱,而每页作业添加三行既丑陋又不直观。

谢谢!Avi

PS 解决这个问题的替代方法会很棒。也许我找错了方向。

答案1

据我所知,计数仅接受单元格引用、数字、字符串和通配符(任何与单元格内的值有关的内容,而不是格式)。不过,您可以尝试以下几种方法。

选项 1:数据过滤和小计

您可以使用数据过滤器随着小计,如下例所示。但是,这只适用于背景颜色,而不适用于字体粗细。对于难题,您可以使用黄色和红色的色调,而不是使用粗体字体。缺点是,每次想要计算问题数量时,您都必须手动应用过滤器。

在此处输入图片描述


选项 2:自定义函数

Public Function COUNTF(w As Boolean, h As Boolean, rng As Range) As Integer

Dim cHard, cMand, cBoth As Integer

For Each c In rng
    If c.Font.Bold Then cHard = cHard + 1
    If c.Interior.Color = RGB(255, 255, 0) Then cMand = cMand + 1
    If c.Font.Bold And c.Interior.Color = RGB(255, 255, 0) Then cBoth = cBoth + 1
Next c

If w And Not (h) Then
    COUNTF = cHard
ElseIf Not (w) And h Then
    COUNTF = cMand
ElseIf w And h Then
    COUNTF = cBoth
Else
    COUNTF = rng.Count - (cHard + cMand - cBoth)
End If

End Function

使用方法:

=COUNTF(a, b, B5:B13)

在哪里:
a&b可以是TRUEFALSE10
B5:B13包含问题

例子:
计算所有难题:=COUNTF(1, 0, questions)
计算所有必答题:=COUNTF(0, 1, questions)
计算非必答难题: =COUNTF(1, 0, questions)-COUNTF(1, 1, questions)

相关内容