我有一张 Excel 表,其中我在两列上应用了条件格式。仅当该行中的单元格满足条件时,才会突出显示该行。具体来说,我想突出显示其中一列中的内容以特定字母开头而另一列中的数字大于 500 的行。我使用以下函数:
=AND($B2 > 500, SEARCH("A", $C2)=1)
正确的行已突出显示,但是有没有办法计算突出显示的行数?
我尝试使用 COUNTIF 函数:
=COUNTIF($B$2:$C$50, AND($B2 > 500, SEARCH("A", $C2)=1))
但它返回 0。有什么建议吗?
我正在使用 Mac 版 Microsoft Excel 2016
答案1
使用您的特定条件格式公式需要输入数组解决方案:
数组中输入(Ctrl++ Shift)Enter以下公式D2
(不要忘记删除{
and }
):
{=SUM((B2:B50>500)*IFERROR((SEARCH("A",C2:C50)=1),FALSE))}
由于这是一个数组输入公式,因此会为每个范围B2:B50
和生成一个数组C2:C50
,其中数组值是每行各自比较的结果。
要理解的关键是,相乘时,aTRUE
值转换为 a 1
,aFALSE
值转换为 a 。因此,当且仅当0
两个数组相乘生成的数组将包含值为 的元素时,1
两个都列B
大于 500 并且C
列以“A”开头。(否则,元素值将为0
。)
对数组求和可得出两个条件都成立的行数。
而不是检查列中值的第一个字母“A”的索引是否C
为“1”,更好的解决方案是直接检查第一个字符是否为“A”:
{=SUM((B2:B50>500)*(LEFT(C2:C50,1)="A"))}
使用这种新格式的公式,并且意识到函数COUNTIFS()
可以使用通配符,很明显非数组输入的替代解决方案是:
=COUNTIFS(B2:B50,">500",C2:C50,"=A*")