假设我有数据表
A B C D
-----------
5 4 6 3
4 4 3 2
5 4 6 2
我想做一些像
这样的事情A B C D E F
----------------------------------------------
5 4 6 3 =AVERAGE(A1,C1) =AVERAGE(B1,D1)
4 4 3 2 =AVERAGE(A2,C2) =AVERAGE(B2,D2)
5 4 6 2 =AVERAGE(A3,C3) =AVERAGE(B3,D3)
所以基本上我想制作一个使用当前行但特定列的公式来查找平均值。有没有办法做到这一点?特别是要将每列的整个列自动化(假设所有列都是相同的高度)?
答案 0 :(得分:51)
如果您不想对单元格地址进行硬编码,可以使用ROW()
函数。
例如:=AVERAGE(INDIRECT("A" & ROW()), INDIRECT("C" & ROW()))
它可能不是最好的方法!使用自动填充和静态列,如@JaiGovindani建议会好得多。
答案 1 :(得分:31)
要静态行或列,请在其前面添加$符号。因此,如果您要使用公式=AVERAGE($A1,$C1)
并将其向下拖动整个工作表,A和C将保持静态,而1将更改为当前行
如果您使用的是Windows,则可以在公式编辑栏中反复按F4来实现相同的功能。第一个F4印刷机将静止两个(它将A1转换为$ A $ 1),然后只是行(A $ 1)然后只是列($ A1)
虽然技术上使用了您的公式,但是如果不在列的前面放置$符号,则向下拖动整个列应该不是问题。将列设置为静态仅在您拖动ACROSS列并希望继续使用相同列时才会起作用,并且将行设置为静态将用于向下拖动行但希望使用相同的行。