答案1
无论你使用什么方法求和,你都会想要使用动态命名范围或(在 Excel 2007 或更高版本中)数据表。当您输入新值时,任何一个都会扩展您的数据范围。
数据表
对于数据表,您只需选择数据范围内的单元格,然后转到“主页”选项卡 | 格式化为表格并选择任何可用的格式。
Excel 将尝试自动确定您的数据范围 - 假设您的数据布局如示例所示,没有空行或空列,顶部有标题,则它应该能够自动获取范围。如果没有,您可以在此处选择。
单击“确定”,您的数据表将被创建。
数据表为您提供了许多实用的功能:
就我们的目的而言,最好的方法是创建一个命名范围,默认情况下称为 Table1,如果在其正下方的行或旁边的列中添加新数据,该范围会自动扩展。
就我们的目的而言,第二个最佳方法是您可以在公式中使用该命名范围。在您的示例中,假设标题“Gas”和“Grocery”位于 D 列,我们可以将以下公式放入 E 列:
=SUMIF(Table1[Item],D4,Table1[Value])
此公式将查看数据表,Table1
并查看Item
列中与中的值匹配的所有值D4
。然后它将对列中的相应值求和Value
。
您还可以使用 Table1 作为数据透视表的源,但它不会随着新数据添加到数据表而自动更新;您需要转到数据透视表,右键单击它,然后选择“刷新”。
动态命名范围
明确地说,我推荐使用数据表选项。它更简洁、更简单,出错的可能性更小!但是,如果您愿意,我们可以看看动态命名范围。这在旧版本的 Excel 中是必需的,在某些情况下您可能更喜欢它。
我们实际上要创建两个命名范围,每个范围使用非常相似的公式。在 Excel 2007 及更高版本中,转到“公式”选项卡并选择“名称管理器”:
在名称管理器窗口中,单击新建以转到新名称框。这里我们需要两个基本项目 - 一个名称和引用公式。名称不能有任何空格;在我们的例子中,我们可能想要使用项目:
在引用框中,我们将输入一个公式。请注意,在输入此公式时,除非您先按 F2,否则箭头键实际上将开始选择电子表格上的单元格。输入以下内容:=OFFSET(Sheet1!$A$2,0,0,COUNTA(SHEET1!$A:$A)-1,1)
该OFFSET
函数用于返回单元格范围,从参考单元格开始(在本例中Sheet1!A2
),然后向下移动一定数量的行,然后横跨一定数量的列。我们为此使用0,0
它。然后它返回具有一定高度和宽度的范围。我们使用它COUNTA(A:A)
来计算 A 列中有多少个单元格具有任何类型的值以获得该高度,然后减去 1 以说明我们的数据从第 2 行开始,并返回 1 列宽的范围。
创建第二个命名范围,与第一个相同,但名称为“值”,公式引用 B 列:=OFFSET(Sheet1!$B$2,0,0,COUNTA(SHEET1!$B:$B)-1,1)
我们现在可以使用这些命名范围作为与我们在数据表方法:=SUMIF(Item,D4,Value)
您还可以使用动态命名范围来输入数据透视表,但在这种情况下,您需要将其更改为,1)
,,1)
以返回整个数据集。
只需使用整个列
所有这些方法都相当复杂,但它们避免了尝试使用太多资源来实现目标。如果您不担心这一点,您可以随时使用简单的选项:在公式中引用整个列。
在总计单元格中输入如下公式:=SUMIF($A:$A,D4,$B:$B)
这包括 A 列和 B 列中的所有行。它可以起作用,但不如其他选项那么精致。