继续我的任务:excel multiple average in single column
我最近搬到excel 2013,我已经知道我的文件有180k行,因此建议的公式没有考虑(它用于大量内存和我的电脑崩溃)。
我对解决方案的想法是在产品编号更改时使用标记创建另一列:
A | B | C | D
1 | 0:17 | “”|“”|
1 | 0:18 | “”| “”|
。
。
1 | 0:19 | 0:18 | 1 |
2 | 1:12 | “”| “”|
2 | 1:12 | “”| “”|
。
。
2 | 1:13 | 1:12.6 | 1 |
3 | 0:45 | 0:45.0 | 1 |
并且仅在两个非空白单元格之间取平均值。如何从E列获得非空白单元格的地址?如何在不计算整列的情况下获取非空白单元格的地址? 我试过了: C栏:
=IF(D1=1;AVERAGEIF((value in)E1:D1;A1;B$1:B1);"")
它应该从我当前的单元格到D中的前一个非空白单元格的平均值 - 产品名称的最后一次更改
D栏:
=IF(A2=A3;"";1)
E栏:
=ADDRESS(LOOKUP(1,1/(D:D<>""),ROW(D:D)),1)
获取非空单元格的单元格地址,但是它再次计算整列,所以我什么都没解决。
请求帮助!
答案 0 :(得分:0)
在Cell C1中放1
在单元格C2中输入= IF(A2 = A1,C1 + 1,1)并向下复制:这将计算产品编号的连续出现次数
在Cell D1 put = IF(A2 A1,AVERAGE(OFFSET(B1,0,0,C1 * -1,1)),&#34;&#34;)并向下复制偏移抓取单元格以平均最后一个相邻的产品编号块。
这应该很快计算,但缺点是OFFSET是不稳定的,所以D列会在每次重新计算时重新计算。