= VLOOKUP(SUMIFS)语句需要很长的处理时间

编辑

可用的文件: https ://docs.google.com/spreadsheets/d/1IhxKqnj62vssttZA73hF-S_TvynQNPdtSyb7wWq3Kpo/edit ? usp = sharing

屏幕截图: http : //i.imgur.com/d25R8lc.png

目的

我目前正在为CUSTOMERS创build定价模型,CUSTOMERS订购特定的产品和configuration所述产品。 最后的结果是SUM SALES和LOOKUP一个表格,将客户放入一个类别。

APPROACH

  • 500,000多行数据
  • SUMIF:和范围=销售; 标准=(客户ID,产品ID,configuration)
  • VLOOKUP:取SUMIF值并部分匹配定价表,返回定价层(例如“银级”,“金级”,“白金级”)
  • 一旦定义定价层,创build一个数据透视表,以便于过滤

问题(S) :处理行的时间是30-60分钟。 我试图从VLOOKUP中分解SUMIFS语句来独立计算它们,但是没有可衡量的成功。 我也试着向服务器(使用DSUM)进行SQL查询以减less本地工作量,但是这对处理时间也没有正面影响。

质询

  1. 我如何有效地处理大量信息,并根据销售,产品ID和configuration标准对客户进行正确分类?
  2. 我一直在考虑在VBA中这样做,但不确定VBA是否比单元格公式更有效。
  3. 附加实用程序会提供任何解决scheme(例如功率数据或功率查询)?

有500万行,我会考虑使用Access或其他数据库应用程序。 这只是VLOOKUP和SUMIF的大量数据,如果你做了大量的比较,甚至Excel VBA也会变得很慢。

SUMIF和VLOOKUP在查询中很容易复制,而且速度要快得多。

如果使用ACCESS,请尝试使用此SQL查询:

SELECT [Customer ID],[Product ID],[Configuration],[Pricing Tier] FROM (SELECT [Data Table].[Customer ID], [Data Table].[Product ID], [Data Table].[Configuration], Sum([Data Table].Sales) AS [Sales Sum] FROM [Data Table] GROUP BY [Data Table].[Customer ID], [Data Table].[Product ID], [Data Table].[Configuration]) AS T, [Pricing Table] P WHERE [Annual Sales] = (SELECT Max([Annual Sales]) FROM [Pricing Table] WHERE [Annual Sales] <= [Sales Sum]); 

这应该(希望)伎俩。 让我知道!