1
我想转置一些数组,但有一些字符长度超过255给我麻烦。所以,我想看看是否有人可以帮我缩短下面的代码。VBA缩短代码小于255字符
我的数据具有标记的列(1或0)和量(AMT)。什么公式确实是我的标记栏的外观和发现3名1的是在同一行作为我的公式或以上,但只能仰视不超过11行以上。然后,一旦它找到三个1在标记列它的平均值的3分对应的AMT的。
IFERROR(IF(RC[-2]=1, AVERAGE(INDEX(R[-11]C[-1]:RC[-1], MATCH(2,1/(FIND(1,R[-11]C[-2]:RC[-2])))), INDEX(R[-11]C[-1]:R[-1]C[-1],MATCH(2,1/(FIND(1,R[-11]C[-2]:R[-1]C[-2])))), INDEX(R[-11]C[-1]:R[-2]C[-1],MATCH(2,1/(FIND(1,OFFSET(R[-2]C[-2],-9,0,MATCH(2,1/(FIND(1,R[-11]C[-2]:R[-1]C[-2])))-1)))))),0),0)
假设该数据继续进行超过12个条目...
flag | amt | avg
1 | 5 | 0
1 | 6 | 0
1 | 2 | 4.33 = (2+6+5)/3
0 | 7 | 0
1 | 6 | 4.67 = (6+2+6)/3
1 | 11 | 6.33 = (11+6+2)/3
有趣的过程,它似乎工作!一些事情; 1.有没有办法修改它,使其查找有限的数量?就像这个例子那样,单元格只查找4行。 ; 2.总计如何在索引中工作?我不熟悉聚合,但我与索引匹配。 – PVic
@PVic看到编辑。 –
至于Aggregate,它返回行号,找到第1行或所需行数up和放置公式的行之间A列中第1行的第3个行号。然后它将该行号返回到INDEX,然后将其返回到平均IF –