我有一个Excel工作表,其中在x轴上有事件日期,在y轴上有不同类别的事件。出现值是数字]0, 1]
。并非每个类别在每个事件中都有价值。
我想获得5个最新的(=最右边)出现值的总和,即求和每行包含一个数字的5个最左边的单元格的值之和。我有一个原则上可以工作的数组公式(第4行的示例):
=SUM(IF(COLUMN(B4:AP4)>=LARGE(IF(ISNUMBER(B4:AP4);COLUMN(B4:AP4));5);B4:AP4))
数据范围从G列到AP列,并且B–F列包含零,以便在少于5次的情况下该功能起作用。
问题是当前有92个出现的类(92行),我想在语法中为当前行有一个占位符。我尝试过了
=SUM(IF(COLUMN((INDIRECT("B"&ROW()&":AP"&ROW())))
>=LARGE(IF(ISNUMBER((INDIRECT("B"&ROW()&":AP"&ROW())));
COLUMN((INDIRECT("B"&ROW()&":AP"&ROW()))));5);(INDIRECT("B"&ROW()&":AP"&ROW()))))
但是它不起作用。有没有办法制作易于复制的可粘贴代码来做到这一点?
答案 0 :(得分:0)
您快到了。将每个ROW()
呼叫包装在SUM
内。您不希望将数组作为行引用,而希望使用行号。
=SUM(IF(COLUMN((INDIRECT("B"&SUM(ROW())&":AP"&SUM(ROW()))))
>=LARGE(IF(ISNUMBER((INDIRECT("B"&SUM(ROW())&":AP"&SUM(ROW())))),
COLUMN((INDIRECT("B"&SUM(ROW())&":AP"&SUM(ROW()))))),5),(INDIRECT("B"&SUM(ROW())&":AP"&SUM(ROW())))))