Excel:如何通过列标题引用公式中的整个列?

我想写一个像=SUM(tab2!A:A)的公式,而是使用A的列标题,这就是说“计数”。 我怎么修改这个看起来更像是: =SUM(tab2!"count")

我想这样做的原因是因为我复制并粘贴来自另一个来源的电子表格在tab2和引用“计数”的列可能在不同的列。 只要粘贴新电子表格时,我希望该公式能够正确计算,方法是自动查找按标题名称加总的列。

我必须错过一些东西,因为这看起来像一个非常基本的问题,我无法在任何地方find答案…

谢谢你的帮助!

我喜欢@Doug提出的命名范围的想法,但是如果问题是你正在倾销你的数据[而且事先不知道哪一列将会在哪里]并且每次都需要重新命名你的范围,还有其他的select – 我build议使用OFFSET。 OFFSET允许您dynamic地创build一个范围,从特定点开始,向下/向上/向右/向左移动您所确定的行数和列数。

在你的情况,你将需要结合search列的方法来看看哪一个说“计数”。 我假设你的列标题总是在第1行。如果他们不是[或者如果他们不总是在第2行,或者你提前知道的任何一行] …你可以解决,但是, dbuild议您尝试使数据更均匀,而不是创build不必要的Excel解决方法。

总的来说,你的公式看起来像这样:

 =SUM(OFFSET(A1,,MATCH("Count",1:1,0)-1,ROWS(A:A),1)) 

这样做首先确定在第1行中find单词“Count”的那一列。然后,从第A列中减去1 – 现在等于列A的右边的列数。它使用偏移量为所有行创build对该列的引用,并将这些行相加在一起。

在这里输入图像说明

查看命名范围的名称pipe理器:)

你没有说你是否会考虑macros观解决scheme。 如果是这样,这可能工作。 如果粘贴到的工作表是Sheet2,并且您希望得到的工作表是Sheet1,那么如果放置在Sheet1的Worksheet_Activate事件中,则此macros将在您单击Sheet1选项卡并单击粘贴数据时立即给出结果到Sheet2中:

 Private Sub Worksheet_Activate() Dim r As Range Dim rCol As Range Dim rFound As Range Dim ws As Worksheet Dim lTotal As Long Set ws = Sheet2 Set r = ws.Cells Set rFound = r.Find("count") If Not rFound Is Nothing Then Set rCol = rFound.EntireColumn lTotal = Application.WorksheetFunction.Sum(rCol) End If Cells(1, 1) = lTotal End Sub 

它确实假设在Sheet2上只有一个单元格中包含单词“count”。