如何优化具有非常大的数据的COUNTIFS

我想创build一个如下图所示的报告。
我的数据有大约500,000个单元格(它将继续增长)

现在,我使用excel中的countifs函数,但计算需要很长时间。 (不能closures自动计算)

主要价值是收集date和date的范围约3年,所以我必须把很多公式,以涵盖所有范围的价值。

结果 结果

下面的图片是最重要的一个不能改变的数据源。 ,而底部是我自己创造的(可以改变)。 我使用weeknum将date更改为星期数。

数据 数据

有没有更好的公式或任何方式来使这个文件更快? 欢迎各种build议!
我正在考虑使用数据透视表,但是我不知道如何从这种数据源创build数据透视表。
PS。 VBA是最后的select。

你可以在这里下载示例文件: https : //www.mediafire.com/?t21s8ngn9mlme2d

我将发布这个答案的免责声明,它完全取决于数据集的大小。 打开和closures自动计算是最好的方法,但你的问题不让我这样做,所以继续阅读。

你的问题让我很好奇,所以我试了一下,并给它定时。 我基本上从1-1000select了超过10万个兰特数的两列,然后尝试在两列相同的情况下做两列。 我创build了一个我可以运行的macros来closuresautocalculate,插入开始时间,计算,然后插入结束时间。 我用黄色突出显示了时差。

首先,我尝试了你的方式,两个标准,countifs: 在这里输入图像说明

然后,我尝试组合(连接)两列,看看是否可以通过只有一个countif标准和数据集来简化。 它不。 看到下面的结果: 在这里输入图像说明

最后,意识到发生了什么事情。 我决定让标准只匹配号码中的第一个值来寻找。 我基本上减less了每个单元格检查的字符数。 这有一个积极的结果。 见下文: 在这里输入图像说明

所以我的build议是尽量限制你比较的字数。 你主要是看date,所以你可能不得不去创造性,但这似乎是最好的方式,而不需要手动计算。

我曾经使用类似大小的Excel工作表。 特别是如果您定期使用这些数据,我会衷心推荐切换到适当的数据库基于SQL,Access或任何适合您的目的。 我不知道速度,也不会碰到Excel的大小限制。 🙂

你可以导入你现在的数据相当简单。 我很高兴作为我的postgresql数据库的蛤蜊。