Excel:如何按列标题引用公式中的整列?

Excel:如何按列标题引用公式中的整列?,excel,Excel,我想写一个类似于=SUM(tab2!a:a)的公式,但使用a的列标题,即“count”。如何将其修改为更像:=SUM(tab2!“count”) 我之所以要这样做,是因为我从tab2中的另一个源复制并粘贴了一个电子表格,而引用“count”的列可能位于不同的列中我希望在粘贴新的电子表格时,通过自动查找要按标题名称进行汇总的列,公式能为我提供正确的计算结果。 我一定错过了什么,因为这似乎是一个非常基本的问题,我在任何地方都找不到答案 谢谢你的帮助 检查名称管理器的命名范围:(< p>)你没有说你

我想写一个类似于
=SUM(tab2!a:a)
的公式,但使用a的列标题,即“count”。如何将其修改为更像:
=SUM(tab2!“count”)

我之所以要这样做,是因为我从tab2中的另一个源复制并粘贴了一个电子表格,而引用“count”的列可能位于不同的列中我希望在粘贴新的电子表格时,通过自动查找要按标题名称进行汇总的列,公式能为我提供正确的计算结果。

我一定错过了什么,因为这似乎是一个非常基本的问题,我在任何地方都找不到答案

谢谢你的帮助


检查名称管理器的命名范围:(

< p>)你没有说你是否考虑一个宏解决方案。如果是这样的话,这可能会奏效。 如果要粘贴到的工作表是Sheet2,而要在其中生成结果的工作表是Sheet1,则此宏(如果放置在Sheet1的“工作表激活”事件中)将在将数据粘贴到Sheet2后单击“工作表1”选项卡时立即给出结果:

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”一词。

我喜欢@Doug提出的命名范围的想法,但如果问题是您正在[并且您事先不知道哪个列将位于何处]中转储数据,并且每次都需要重命名您的范围,还有其他选择-我建议使用偏移。偏移允许您动态创建一个范围,从特定点开始,并根据您确定的行数和列数向下/向上/向右/向左移动

在您的例子中,您需要将其与搜索列的方法相结合,以查看哪个列显示“Count”。我假设您的列标题总是在第1行。如果它们不是[或者它们不总是在第2行,或者你事先知道的任何一行]。。。您可以绕过这一点,但我建议您尝试使数据更加统一,而不是创建不必要的Excel工作区

总的来说,您的公式如下所示:

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

这样做的目的是首先确定在第1行的哪个列中找到“Count”一词。然后从该数字中减去1-现在等于A列右侧的列数。它使用偏移量为所有行创建对该列的引用,并将这些行相加。

我从tab2中创建了名称,并使用列标题获得了公式,但是,当我用一个列顺序不同的新电子表格替换tab2时,公式找不到与标题对应的新列(公式使用的是现在有不同标题的旧列)。我错过了什么?这对我来说可能太早了,但你能发布并举例说明吗?可能是命名范围与该范围静态关联。例如,原始工作簿中的“this.Range”与每个工作簿中可能不相同的(“C:C”)相关联。假设我有两列“age”和“count”。我突出显示这两列并按“从选择创建”,这允许我计算“=SUM(count)”,其中它对应于第二行。到目前为止很好。现在,如果我有列顺序错误的新数据(“count”、“age”)并将其粘贴到中,“=SUM(count)”仍将计算第二列(现在是“age”),尽管列名发生了更改。我希望公式能够找到与特定名称“count”对应的列,无论该列位于何处。现在,您很可能必须在vba中完成此操作。这篇文章可能会有所帮助,然后您可以添加一个工作表函数,将总和放在所需的位置。