我在BA栏目中使用Excel文件中的folliwing 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
我有超过150K的记录,因此Excel崩溃了。是否有可能改进公式或使用vba代码来做同样的事情?
答案 0 :(得分:1)
在示例的情况下,我正在尝试根据多个条件计算唯一记录。公式=(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记录需要大约1小时。也许有更快的方法来做到这一点。