根据具有大数据集优化的计数从3列中选择值

时间:2018-02-07 14:25:55

标签: excel excel-vba excel-formula vba

我有一个地址列表,从50k到300k或更高。我有3列,包括最近的商店1,最近的商店2,以及每行地址最近的商店3。我使用的公式是给我我想要的输出,然而,它需要几个小时来计算,偶尔会出错。我正在寻找一种更好的方法来分析数据集。示例数据集如下所示。

| Store1 | Store2 | Store3 | CS1   | CS2    | CS3   | Map_store |
|--------|--------|--------|-------|--------|-------|-----------|
| 1111   | 2222   | 3333   | 0     | 0      | 0     | 1111      |
| 1111   | 2222   | 4444   | 1     | 0      | 0     | 2222      |
| 2222   | 5555   | 6666   | 1     | 1      | 0     | 6666      |
| 3333   | 7777   | 8888   | 0     | 0      | 0     | 3333      |  

有更多列引用地址数据,但这是数据集的核心。存储1,2和3从最靠近地址对齐。这就是我默认为store1的原因。

“CS1”中的公式是......

=Countif($G$1:G1,"="&[@[Store1]])

相同的公式适用于CS2和CS3,但使用[@ [Store2]]和[@ [Store3]]

Map_Store公式是......

=index(Table1[@Store1]:[Store3],1,MATCH(MIN(Table1[@[CS1]:[CS3]),Table1[@[CS1]:[CS3],0)*2-1)

这会选择count列的最小值,以确保存储均匀分布。输出是正确的,只是过程密集。

我希望优化此过程,因为要映射的80k到200k地址列表需要3到6个小时。非常感谢任何协助方向。

0 个答案:

没有答案
相关问题