我需要计算K列中输入的最后20个值的平均值。
我已经了解到我可以使用以下方法找到最后输入的值:
=address(max(match(1e99; K:K)); 11; 4; 1)
这将是我的平均结束,我可以找到我的平均开头:
=address(max(match(1e99; K:K))-20; 11; 4; 1)
我现在的问题是,我如何使用这两个地址来创建平均公式? 这是电子表格每天都在获得新的价值,因此每天的单元格地址都是不同的。
例如,这两个公式将分别产生:K424和K404。
所以我需要创建一个平均公式,其工作方式如下:
=average(K404:K424)
通过使用那些先前的公式结果。我没有选择从这些公式中输入数字。
我尝试了这个,但没有工作:
=average((address(match(1e99; K:K))-20; 11; 4; 1)):(address(match(1e99; K:K)); 11; 4; 1)))
如果我尝试:
=average((address(match(1e99; K:K))-20; 11; 4; 1))&":"&(address(match(1e99; K:K)); 11; 4; 1)))
我得到#VALUE
答案 0 :(得分:1)
你正在寻找=平均(...)
答案 1 :(得分:1)
试试这个 - 在构建嵌套公式时,您需要维护冒号的字符串文字。
address
函数的结果应返回一个字符串,如"K404"
和"K424"
(或可能是"$K$404"
和"$K$424"
)。你需要将冒号保持为字符串的一部分,就像这样,并在连接的地址字符串上使用Indirect
函数:
=average(Indirect((address(match(1e99; K:K)); 11; 4; 1))&":"&(address(match(1e99; K:K))-20; 11; 4; 1))))
答案 2 :(得分:1)
您可以将两个INDEX函数与冒号拼接在一起,以获得正确的单元格区域,而无需在INDIRECT函数返回的字符串上使用volatile ADDRESS¹。
=average(index(K:K; match(1e99; K:K)-19):index(K:K; match(1e99; K:K)))
这将平均K列中的最后20行。
¹当整个工作簿中的任何内容发生变化时,不仅在影响其结果的某些内容发生变化时,挥发性函数都会重新计算。 易失性函数的示例包括INDIRECT,OFFSET,TODAY,NOW,RAND和RANDBETWEEN。 CELL和INFO工作表函数的某些子函数也会使它们变得不稳定。
答案 3 :(得分:1)
这是同一件事的另一个公式
{=SUM(IF(ROW(G:G)>MATCH(1E+99,G:G)-20,G:G,0))/20}
这是一个数组公式,所以你必须使用CTRL-SHIFT-ENTER