在Excel中,我如何引用当前行的特定列?

39

假设我有数据表

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)

基本上,我想制定一个公式,该公式使用当前行但特定列来查找平均值。有没有办法做到这一点?特别是自动沿着每个列的整体向下执行(假设所有列的高度相同)?

3个回答

79

如果您不想硬编码单元格地址,可以使用ROW()函数。

例如:=AVERAGE(INDIRECT("A" & ROW()), INDIRECT("C" & ROW()))

但这可能不是最好的方法!像@JaiGovindani建议的那样使用Auto-Fill和静态列会更好。


4
这项技术适用于条件格式。我有一个包含复选框列的区域。如果对应的复选框被选中,该行上的任何其他值都应该加粗显示。使用基于=INDIRECT("AA" & ROW())的条件格式设置,并指定条件格式为“加粗”。 - HABO
1
这解决了我在 EPPlus 中遇到的一个大排序问题,谢谢! - DaFi4
2
非常有用,如果您插入、移动和删除单元格,并且希望您的公式引用同一行左侧两列的单元格等,而不是移动的单元格。 - R. Schreurs
如果您要将公式发送给不知道如何将公式更新到他们正在粘贴的行中的同事,这也非常有用。 - user193130

37
要使行或列静态,请在其前面放置$符号。因此,如果您使用公式=AVERAGE($A1,$C1)并将其拖到整个工作表中,则A和C保持不变,而1会更改为当前行。
如果您使用Windows,则可以在公式编辑栏中重复按F4来实现相同的效果。第一次按F4会同时静态化两个元素(它会将A1转换为$A$1),然后是仅行(A$1),再次按下则是仅列($A1)。
尽管从技术上讲,在您拥有的公式中,即使没有在列前面加上$符号,也不应该在整个列中拖动时出现问题。只有在跨列拖动并希望继续使用同一列时才需要将列设置为静态,并且将行设置为静态将用于向下拖动行但希望使用同一行的情况。

1
我对如何进行此操作有些困惑。那么,我是先选择E1,然后输入公式吗?我这样做似乎可以使用Ctrl + 选择列来获得总平均值。 - Jared Joke
先完成你的公式,然后将光标放在 E1 的任何部分上,按 F4 键(你不必选择单元格名称 - E1 - 只需像 E|1 这样将光标放在那里,其中 | 是光标)。 - Jai Govindani
请告诉我在公式中$符号的意义是什么?$符号有什么作用? - user15940620
1
@BabuBhatt 它将该值设置为“静态”,这意味着当您将该公式拖动/复制到其他单元格时,它不会更改。$C4表示“C”在拖动时保持不变(通常会更改/递增C> D、E、F...)。另一方面,C$4将保持“4”固定,因此在向下拖动/复制公式时不会递增4 > 5、6、7... - Jai Govindani

0

看看OFFSET()。我的问题是如何克服行插入。 我做了以下操作:

=OFFSET(E774,-1,0)+OFFSET(E774,0,-1)-OFFSET(E774,0,-2)

这允许余额列在加上信用减去借记之上。我希望有一个Excel函数可以实现这个功能。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接