一列中唯一值的计数,以速度为考虑因素
是否有更快的方法来计算列中的唯一值? 我的公式的第二次迭代使用速度的范围,但收到#NAME? 错误。 谢谢。
我已经使用下面的公式来计算第5列中唯一的IP地址的数量。 – 由jeeped在msdn上解释 –
ActiveCell.Formula = "=sumproduct((ipsheet!C[5]<>"""")/ipsheet(ACAS!C[5],ipsheet!C[5]&""""))"
论坛工作,但它真的很慢,超过5000+条目。 我曾尝试实施与之相同的公式
With Sheets("ipsheet") 'create range for ip addresses Set rngOfFindings = .Range(.Range("e1"), .Range("e1").End(xlDown)) End With "=sumproduct((rngOfFindings<>"""")/countif(rngOfFindings,rngOfFindings&""""))"
结果是#NAME?
将列中的数据命名为命名范围。
保存你的文件。
转到数据>从其他来源>从Microsoft Query
selectExcel文件,然后导航到您的Excel文件。 打开它,select您的范围,然后继续并在Microsoft Query中编辑。
点击SQLbutton,然后input
SELECT COUNT(DISTINCT rangename.columnheader) FROM rangename rangename
对于大范围这个公式是更长,但更快
=SUM(IF(FREQUENCY(IF(range<>"",MATCH(range,range,0)),ROW(range)-MIN(ROW(range))),1))
用CTRL + SHIFT + ENTER确认