如何对 Excel 中命名范围内的每一行求和?

如何对 Excel 中命名范围内的每一行求和?

我正在尝试对预算模板进行逆向工程,以便对其进行修改。它包含针对不同支出(家庭、娱乐、交通等)的部分。每个部分都有多个支出(交通包括汽车保险、汽油、停车等)。每个部分都是一个命名范围,每个支出都汇总到行右端的一个单元格中。但是,模板对部分中的每一行都使用相同的功能,我无法弄清楚它是如何工作的。

这是一张图,顶部是功能,名称是管理器。正如我所说,突出显示的功能与“日常生活”所有行总计中的功能完全相同。 https://i.stack.imgur.com/mbMij.jpg

我有完全相同的名称组(名称管理器和所有范围都相同)和相同的布局,但我无法让相同的函数产生错误并且不被接受。我能做的最好的就是输入 SUM(Daily),它会对该部分中的所有行求和,而不是单独对每一行求和。

有人可以从图片中解释一下这个功能吗=SUM(Daily[@[January]:[December]]),特别是‘@’符号,以及当名称管理器中没有显示 JAN 时,Excel 如何知道(在列标题中)JAN 表示一月?

奖励:有人可以解释一下部分总计和总体总计功能如何工作吗? https://i.stack.imgur.com/ydMfz.jpg

答案1

好吧,大家问了很多问题,我希望能够一一回答。希望。

首先,数据布局是Table。对于 Excel 来说,ATable不同于以前数据所在的单元格区域。它是一个遵循简单规则的正式对象,而 Excel 则不必考虑世界上任何人在设置时可能做的所有奇怪的事情(我见过总计单元格出现在数据中,而不是在下方、上方、左侧或右侧,并且在同一范围内,出现在不同列的不同行中。它以一种愚蠢的方式符合那个家伙的方案,但是当它看起来奇怪且让人困惑时,Excel 到底是怎么想的?或者十个人?

无论如何,你的桌子被命名为日常的。顺便说一句,您可以根据公式元素的输入方式判断它是表格,如果没有其他原因:看到方括号(“[ ]”)了吗?它们几乎只在表格和其他地方使用(所有这些地方可能都使用表格技术来工作)。无论如何,在创建简单公式时SUM(),当您突出显示整行时,Excel 会根据列标题将您看到的单元格地址转换为表格引用:1 月到 12 月是您在此处突出显示的范围的边缘。因此,您看到的不是像 D20:O20 这样的引用,而是 [January:December]。

这个公式中还剩下一个元素:@。由于这是一个表格,如果您无法告诉 Excel 您指的是仅此行,它会认为您正在对所有行求和。在 Excel 中, 告诉@Excel“仅此行”,并且不仅在表格和其他地方使用,而且在使用公式时也大量使用Spill。明确地说,它告诉 Excel 此行,因此您只对干洗行求和,将 1 月至 12 月之间所有列中的数字相加。

在很多方面,SUM()像这里这样使用和SUBTOTAL()(在任何地方使用)是相同的,有点。但SUBTOTAL()有一个很大的区别:Excel 愿意在对列求和时忽略使用它得到的 SUBTOTAL。但它不会忽略用创建的 subtotal,SUM()因此如果它们与某些原始数字位于同一列中,您将获得应有总数的两倍。SUBTOTAL()它还会返回许多不同的东西,比如平均值,而它SUM()本身无法返回。

编写电子表格的人显然采用了一种非常标准和合理的方法来设置总计。他使用 得到水平总计,SUM()这样他随后进行的垂直总计就不会自动忽略它们,然后使用它们SUBTOTAL()进行您在表格中看到的垂直总计。

这些东西都不在命名范围中,因为它们是自动可用的(如此自动,有时很难避免它们......)因为整个东西都是一个表。由于它是一个表,您可以使用列标题作为引用。以前你可以一直这样做,但他们在大约 17 年前把它拿走了,然后以这种形式还回来了......叹息......

此外,有时令人讨厌的是,列标题自动为文本,因此它们不能是公式。因此表格无法使用动态标题。

它看起来不像表格的一个原因是您看不到每个标题右侧令人讨厌的过滤图标,这些图标通常位于标题的顶部……让它们消失很简单,作者显然就是这么做的。如果没有这些,大多数人在很长一段时间内都不会想到“表格”,但公式​​引用的形成是一个明显的迹象。另一个掩盖事实的事情是大多数人习惯于表格的“绿色带”外观(任何颜色,但那张纸过去大部分是绿色的,而我已经 845 岁了……)。不过,当不合适或被认为令人讨厌时,也可以将其格式化掉(为什么?为什么?它使全屏表格的可读性大大提高!),在这种情况下,显然它不属于表格。人们可以在每个数据区域中使用它,但由于它们各自有多少行不同,因此每年都会付出很多努力。

所以:

  1. 这是一个Table,所以它有一些好的东西给你
  2. 数据分为两部分,左列包含部分标题和子部分标题(在您的例子中为单独的行)。例如“干洗”,然后是 1 月至 12 月标题下的“按时间顺序填写”部分。
  3. 使用函数对每一行右侧的年份进行总计SUM()
  4. SUBTOTAL()使用函数对每列按月(最右边一列为年份)进行总计。
  5. 这些SUM()函数每次只对一行起作用,因为它们将其放在@范围引用(“@January”)中的第一个项目之前。
  6. 各个部分(“收入”、“家庭”等)每个月和每年都使用SUBTOTAL()函数来计算总计,因为在计算总列的总计时,这些函数将被忽略。(与SUM()每个部分的结果将包含在底部相比,总体而言,总计给出的结果将是其应有值的两倍。)

布局合理且实用,注重重要细节。有人可能会说,这种东西最好放在一个简单的表格中,甚至是表格​​版本中……如果你愿意的话,可以放一个简单的表格,然后放一个数据透视表(是的,845 年历史了,所以交叉表,甚至交叉标签,对我来说仍然很正常)进行展示。毕竟,数据透视表,或者更确切地说,Power Pivot 表有很多优点(哦……切片器……)和自己的总计能力,等等​​,但这是另一回事,需要学习,这很好地解决了某人的需求。

不确定你需要做什么,所以我无法提供任何帮助。但如果你只是想以某种方式改进努力,或者以某种方式让它成为你自己的,你真的做不到,它做得很好。除非你采用数据透视表路线。所以如果仅此而已,那就省点事吧:这很不错,你真的没有什么需要改进的地方。如果只是老板想做点什么,否则,好吧,我理解你的感受,我们都经历过。

相关内容