我正在使用VBA Countifs根据条件获取某些值的计数。现在我需要一个条件来计算。
以下代码适用于计数“无视频”行和非“无视频”行。但我想将“无视频”或“无数据”视为单输出,而另一种则没有这两种。
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做。
答案 0 :(得分:2)
CountIfs不允许使用这样的OR条件。您可以在一行代码中添加或减去Countifs,并避免中间步骤。您也可以使用SumProduct,例如:
= application.WorksheetFunction.SumProduct(((R2="No Video")*(R2="Not Audited"))+(R1 = AuditType))
以上是空气代码,您需要使SumProduct在Excel中工作并记录它以获得正确的语法。有关使用SumProduct的信息,请参阅此OzGrid page
请注意,在上面的公式中,乘法创建一个AND运算,并且添加创建和OR运算。