繁体   English   中英

使用VBA具有多个条件的Excel统计

[英]Excel countifs with multiple criteria using VBA

我在BA栏中的Excel文件中使用以下COUNTIFS函数:

=(COUNTIFS(E$2:E2;E2;$G$2:G2;G2;$I$2:I2;I2;$N$2:N2;N2;$O$2:O2;O2;$R$2:R2;R2)=1)*1

我有超过15万条记录,因此Excel崩溃了。 是否可以改进公式或使用vba代码执行相同的操作?

这是一个示例: 在此处输入图片说明

在该示例的情况下,我试图根据多个条件对唯一记录进行计数。 公式=(COUNTIFS(E$2:E2;E2;$G$2:G2;G2;$I$2:I2;I2;$N$2:N2;N2;$O$2:O2;O2;$R$2:R2;R2)=1)*1就像一个超级按钮一样,但是我想使用vba来做同样的事情。

Sub CountIfsFormula()
Dim varFilas As Long
Dim vari As Long

    On Error GoTo errCountIfsFormula
    varFilas = Cells(Rows.Count, "A").End(xlUp).Row
    For vari = 2 To varFilas
        Range("BA" & vari).Formula = "=(COUNTIFS(E$2:E" & vari & ",E" & vari & ",$G$2:G" & vari & ",G" & vari & ",$I$2:I" & vari & ",I" & vari & ",$N$2:N" & vari & ",N" & vari & ",$O$2:O" & vari & ",O" & vari & ",$R$2:R" & vari & ",R" & vari & ")=1)*1"
        Range("BA" & vari).Value = CStr(Range("BA" & vari).Value)
    Next vari

    Exit Sub

大约有20万条记录,大约需要1个小时。 也许有更快的方法可以做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM