Excel使用VBA标识多个标准
我在BA列上使用Excel文件中的以下COUNTFS函数:
=(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
我有超过150K的logging,所以Excel崩溃。 是否有可能改善公式或使用VBA代码做同样的事情?
这是一个示例:
在这个例子中,我试图根据多个标准来计算唯一的logging。 公式=(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
约200K的logging需要约1个小时。 也许有一个更快的方法来做到这一点。