请参阅下面的数据透视表的代码段,共有6,000个J #######模型(即J2253993,J2254008,J2254014等)。
如何计算每个型号的最后一个里程表读数与第一个里程表读数之间的差异?每个模型的记录月份数没有一致性,并且每个模型的第一个时间戳和最后一个时间戳之间也没有一致性。
即
对于型号J2253993:
所需的答案是:378
因为2501减去2123
对于型号J2254008:
所需的答案是:178
因为1231减去1053
...其余6,000个型号依此类推
是否需要动态数组?
答案 0 :(得分:1)
如果我对您的理解正确,则好像您只需要在数据透视表中添加“里程表读数变化”列的总和即可。当我为J2253993求和时,我得到378,就像您说的那样。
数据透视表将根据您建立数据的方式按模型汇总所有行,无论那里有多少行。
答案 1 :(得分:1)
编辑:B列中的最大最小值的类似公式(我的第一个想法):
=INDEX(INDIRECT("B"&MATCH(E4,A$1:A$50000,0)+1&":B50000"),MATCH("",INDIRECT("B"&MATCH(E4,A$1:A$50000,0)+1&":B50000"),0)-1)-INDEX(B$1:B$50000,MATCH(E4,A$1:A$50000,0)+1)
我放弃了它,因为图像没有显示任何空白单元格。
编辑结束
该公式正在计算C
列的总和。缺点是,除非知道=""
函数如何返回空单元格的方式,否则必须在C
列的所有空单元格中插入MATCH
。在E
列中,从第四行开始写入ID,在F4
中,写入公式:
=SUM(INDIRECT("C"&MATCH(E4,A$1:A$50000,0)+2&":C"&MATCH("",INDIRECT("C"&MATCH(E4,A$1:A$50000,0)+2&":C44"),0)-1+MATCH(E4,A$1:A$50000,0)+2))
复制/粘贴。