我的代码是:
(SUM(INDIRECT(ADDRESS(ROW()-(I4:I- 1);COLUMN()-4;4)&":"
&ADDRESS(ROW();COLUMN()-4;4)))*( ( J4:J ) / 10 ))))
基本上我想从Gx-Gy中求和细胞,但范围由细胞I4决定。上面的代码有效,但只适用于一行。我希望它适用于数据所在的整个列。
=ArrayFormula( if( J4:J = "" ; "" ;
所以我把ArrayFormula放在前面,只显示数据的计算结果,但结果总是=第一行的结果?
任何人都可以告诉我为什么会这样,以及该怎么办?
我的表格: - > https://docs.google.com/spreadsheet/ccc?key=0AkKaHeBdxneDdHNNQUY5elliWnZRcEVEdkZpZ2h4S1E&usp=sharing
答案 0 :(得分:0)
感谢TOM HORWOOD,他回答了我的问题:
借助矩阵乘法的神奇之处和这个解决方案(信用卡 在信用到期的情况下,我设法纠结它来做你的事 想。
= ArrayFormula(IF(J4:J =“”;“”; MMULT((行(G4:G)> = TRANSPOSE(行(G3:G)))((行(G4:G) )+ 1-I4:I)LT = TRANSPOSE(ROW(G3:G))); G3:G) ((J4:J)/ 10)))我的头已经疼了,所以我也不会进去 很多解释性的细节,除了说关键魔法发生在
=“MMULT((ROW(范围1)> = TRANSPOSE(ROW(范围2)))*((ROW(范围1)+ 1-I4:I)LT = TRANSPOSE(ROW(范围2)));范围2 )))” 我已经用一个粗略的等式为你的公众添加了第二张表 构建者,用于理解或替代应用程序。
谢谢Tom !!