Excel VBA商店标识为多个或条件
我正在使用VBA Countifs根据条件得到一定数量的计数。 现在我需要条件来计数。
下面的代码工作计数“无video”行和非“无video”行。 但是我想统计“无video”或“无数据”作为单个输出,而另一个没有这两个。
Set R1 = appExcel.Range(cmdAudit2.Text & ":" & cmdAudit2.Text) Set R2 = appExcel.Range(cmbChoice.Text & ":" & cmbChoice.Text) NoVideos = appExcel.Application.CountIfs(R1, AuditType, R2, "No video") Videos = appExcel.Application.CountIfs(R1, AuditType, R2, "<>No video")
我发现了一些使用多个条件“和”运算符的例子。 但是我想要“或”条件。
目前我正在使用下面的代码,使其工作
NoVideos = appExcel.Application.CountIfs(R1, AuditType, R2, "No video") NoAudited = appExcel.Application.CountIfs(R1, AuditType, R2, "Not audited") Videos = appExcel.Application.CountIfs(R1, AuditType, R2, "<>No video") Videos = Val(Videos) - Val(NoAudited) NoVideos = Val(NoVideos) + Val(NoAudited)
有没有什么好的方法可以用单一标识来完成。
CountIfs不允许使用这样的OR条件。 您可以在一行代码中添加或减lessCountifs,并避免中间步骤。 你也可以使用SumProduct,如下所示:
= application.WorksheetFunction.SumProduct(((R2="No Video")*(R2="Not Audited"))+(R1 = AuditType))
以上是空码,您需要使SumProduct在Excel中工作并logging它以获取正确的语法。 有关使用SumProduct的信息,请参阅此OzGrid页面
请注意,在上面的公式中,乘法运算创buildAND操作,并且添加创build和OR运算。