在索引/匹配函数

时间:2016-06-11 13:19:01

标签: excel indexing sum

我正在处理分销问题,分析交付给一组商店(75家商店)的数量。

我有一个Excel文件如下:

input

如您所见,由于每家商店每天都没有收到货,因此每天都不包含相同的商店。

我想获得一个新表,其中包含列中存储的代码,以及有关行中的卷和里程的信息。此外,我想总结它们属于同一商店的卷的值。在这个例子中,这将是这样的:

output

可以想象,我的电子表格更大,总共有6500行和800列。我正在考虑使用INDEX / MATCH的函数组合,但我看不出如何在给定日期内对给定商店的多个值求和。

2 个答案:

答案 0 :(得分:1)

不要将商店放在列中,使用VBA或类似的方法来读取输入文件并规范化数据,以便输出显示为

的表格
Store  -  Date      - Volume  -  Miles
101     10/06/2016     520        120
102     11/06/2016     500        100

然后,您可以随时查找商店和日期,或稍后转动数据。

答案 1 :(得分:1)

虽然您需要扩展此公式,但您可以使用:

=SUMIF(INDEX($C:$F,MATCH($J2,$A:$A,0),),L$1,INDEX($C:$F,MATCH($J2,$A:$A,0)+MOD(ROW(),2)+1,))

如果表格是这样构建的:

example

从L2开始,您可以根据需要向下拖动到左侧;)

修改
还要去商店:

L1: {=MIN(IF(MOD(ROW($C$1:$F$6),3)=1,$C$1:$F$6))}
  

这是一个数组公式,必须在没有{}的情况下输入,但必须使用 ctrl + shift + 输入进行确认!

M1: =SUMPRODUCT(SMALL(IF(MOD(ROW($C$1:$F$6),3)=1,$C$1:$F$6),SUM((IF(MOD(ROW($C$1:$F$6),3)=1,$C$1:$F$6)<=L$1)*1)+1))
从M1开始,你可以简单地复制到右边。

获取日期(如果不连续或类似的话)

J2: =MIN(A:A)
J3: =J2
J4: =SMALL(A:A,COUNTIF(A:A,"<="&J3)+1)
J5: =J4

然后简单地复制J4:J5:)