使用countif与三列的VBAmacros

我有一个三列的Excel。

Column A: Column B: Column C: shirts (long, short) color age 

现在我需要找出有多less年龄在10岁以上的绿色衬衫。当然,我现在如何手动过滤它,但是我想自动完成。 其实我有一个更复杂的Excel文件,大约80k行,我需要找出更多的数字。 上面给出的例子的解决scheme将尽我所能。 我只是将其适应于我的实际文件。 我已经find了一些可能的解决scheme,但我认为一个简单的countIf函数将是最简单的,或者当它涉及到超过80k行时,性能不够好吗? 我也努力build立一个countIf函数,使用两个额外的列。 我开始这样做。 如果B的值是“绿色”,而C列的值是“10”,则计算长衬衫。 基本上我想知道这是否是一个合适的解决scheme,以及function如何。

既然你有3个条件你的Count你需要使用CountIfs函数(而不是CountIf )。

下面的代码将完成您提供的3列的工作,以及您的文章中的示例:

 Dim CountIfsRes As Long CountIfsRes = WorksheetFunction.CountIfs(Range("A:A"), "=long", Range("B:B"), "=green", Range("C:C"), "=10") MsgBox CountIfsRes 

如果你想知道有多less长绿衬衫,上面的答案是有效的。

如果您想在汇总表中填充多个条件,则可以使用此公式来实现,并将公式插入到表中。

=COUNTIFS(A:A,"long",B:B,"green",C:C,"10")