如何在Excel公式中使用命名列

我知道如何在Excel中创build一个命名范围。

我有一个电子表格,各种各样的列作为参数,然后最后一个单元格中的公式。 这在每一行中重复多次,每行都有一组不同的数据,并更新公式来引用正确的行索引。

然而,公式看起来像(3行值):

=G2*(10*D2 + 20*E2 + 5*F2) =G3*(10*D3 + 20*E3 + 5*F3) =G4*(10*D4 + 20*E4 + 5*F4) 

我想使用命名的范围,但我不能find一种方法来做类似的事情

 =Count * (10*var1 + 20*var2 + 5*var3) 

其中count,var1,var2和var3自动更新为当前行的特定列。 我可以为每个单元格创build一个命名的范围,但是这没有帮助。 我可以命名列的范围,但是我不能find一种方法来将公式中的偏移量。

这也是整个可读性的重点,所以如果它最终成为一些令人讨厌的复杂的公式函数调用,那可能不会有太大的帮助。

假设我在第2到第4行的D到F列中设置了以下数字:

  DEFG 2 10 15 20 3 1 2 3 4 20 30 40 

现在假设我想让列D中的值为input1 ,列E为input2 ,列F为input3

在“ 插入” >“ 名称” >“ 定义…”

 input1 RefersTo =OFFSET(Sheet1!$D$2,0,0,COUNT(Sheet1!$D:$D),1) input2 RefersTo =OFFSET(Sheet1!$E$2,0,0,COUNT(Sheet1!$E:$E),1) input3 RefersTo =OFFSET(Sheet1!$F$2,0,0,COUNT(Sheet1!$F:$F),1) 

现在,如果我写下列G的公式如下,我应该得到正确的答案:

 G2 =(10*input1+20*input2+30*input3) // 1000 G3 =(10*input1+20*input2+30*input3) // 140 G5 =(10*input1+20*input2+30*input3) // 2000 

这有助于你开始吗?

很简单,至less在使用Excel 2010时:

  1. 为列命名:select完整列,input名称
  2. 在公式中使用列名; excel将结合引用列和当前行来访问单个单元格。

使用“Alex P”的例子:

  1. 通过点击包含“D”的列标题selectD列,在名称字段中input名称“input1”,按回车。
  2. 重复E至F列,分别使用“input2”和“input3”。
  3. 不要像上面的例子那样定义额外的名字来定义名字“input1”[!]。
  4. 使用上面例子给出的公式

注意:以这种方式使用命名列,您不能访问任何其他行作为您的公式所在的行! 至less我不知道有可能expression(行+1)的东西…

添加到Remnant的答案:

而不是使用

  = OFFSET(!$工作表Sheet1 $ d 2,0,0,COUNT(工作表Sheet1 $ d:$ d),1) 

作为input1的公式,我推荐使用

 工作表Sheet1 = $ d $ 2:INDEX(!$工作表Sheet1 d:$ d,COUNT(工作表Sheet1" $ d:$ d)) 

它产生相同的结果 – 但是非易失性的,即只有在前一个单元改变时才重新计算。 这在更大的模型中好多了!

如果您使用的是VBA,那么您可以select整个列,并在名称框(左上angular的input框)中命名为MyCol 。 在您的代码中,您可以使用以下代码MyCol (第12行)列中的单元格:

 Cells(12, Range("MyCol").Column) 

您可能可以使用row()函数。 这将返回您所在的当前行。因此,根据电子表格的布局,您可以像这样使用它:

 =offset(NamedColumn1, row()-1) 

-1是因为你是说有多less行从第1行下移,如果你在第1行你想成为0。

那样有用吗?

使用称为命名参考的Excelfunctionhttp://office.microsoft.com/en-us/excel-help/define-named-cell-references-or-ranges-HP005201536.aspx

命名一个单元格或一系列单元格

1)select单元格或单元格区域2)在名称框(公式小部件的左边,并具有单元名称)中input其名称

您不能使用与k0相似的单元格名称

如果公式可以使用命名的单元格。 例如。

= PI *半径*半径

我会build议创build一个 。 select您的范围A1:H4 ,然后转到表格窗口小部件>新build>插入带有标题的表格 (在Mac上)。 这会将A2:H4标记为表格的主体,并将A1:H4标记为标题。

从那里,你会得到:

  • 无论你放入标题栏,都会自动定义该列的名称,例如CountRadiusDensityHeight
  • 您可以使用=[@Count]*(10*[@Radius] + 20*[@Density] + 5*[@Height])来编写公式
  • 当您在单元格H2更改公式时,Excel将自动将此公式“复制”到列H所有单元格。 所以在公式中没有更多的意外不一致。
  • 当你需要添加另一行时,只需点击最后一个单元格(在我们的例子H4 ),然后点击Tab 。 Excel添加另一行,并确保将公式“复制”到新行中。
  • 如果您需要总行,请将其与“ 表”小部件中的总行checkbox一起添加。 Excel会自动添加一行。 如果单击总行中的任何单元格,则可以使用“▼▲”button更改“总计公式”,例如计算平均值而不是列的总和。
  • 如果您有一个长表并向下滚动,以使标题不再可见,则Excel将自动显示列标题而不是列名(例如, Count而不是G )。

我真的可以推荐与Joel Spolsky一起在Excel中吮吸的video,它解释了所有这一切。

我想提出由@Dror所做的单元格引用的细微变化。 这也将工作:

 Range("MyCol").Rows(12)