【发布时间】:2012-12-13 13:20:48
【问题描述】:
我在 Excel 中有一个要过滤的表格。它将有最多 100 万行和 80 列。所有计算等都以编程方式在数组中完成,以减少处理时间。但是,我还想过滤结果以仅显示基于一个列值的某些结果,然后是基于另一个过滤器值的前 5%。
当我第一次做表格时,它被限制为 65000 个结果,因此数据集的大小没有问题。我只是从代码中调用了工作表过滤器函数并这样做了。我可以用更大的数据集这样做吗?或者有没有办法像在工作表上使用数据集一样过滤数组?
谢谢
【问题讨论】:
-
Excel 现在允许一百万行吗?
-
Excel 2007 及以后的版本确实允许 > 100 万行;准确地说是1,048,576。然而,使用它来过滤大小的数据集并不是,恕我直言,除非你有一台非常棒的 PC,否则这是一个好主意。一旦您处理了几千条记录(经验法则),我认为是时候将记录移入基于 SQL 的数据库(例如 SQL Server 或 My SQL)并在其中运行查询了。处理非常大量的数据是他们生活的目的。 Excel... 不那么重要。你可以做到,但体验可能并不愉快。
-
你有什么代码?您是否限制在 65536 个单元格范围内,因为您使用的是“转置”之类的功能
-
有一个字符串函数
Filter可以与Transpose一起使用来处理列(请参阅stackoverflow.com/questions/12921350/…),但这不会处理前5% 之类的过滤器。您应该尝试使用您当前的方法,如果需要的时间太长(我会感到惊讶),然后查看 Excel -
Excel 2007 起 2^20 行。更容易记住。对于 100 万行,我强烈建议您使用不同的解决方案:基于数据库。您可以使用 Access 和本机 Jet 4.0 数据库,它会为您完成后续工作。您只需通过 ADODB 将处理后的数据拉入 Excel。