将工作表 1 中的列和工作表 2 中的行相加

将工作表 1 中的列和工作表 2 中的行相加

尝试搜索了一会儿,没有找到我想要的东西。

在 Sheet1 上,我有大约 100 列,每列代表一个项目。每行都填充了该项目的数量。您可以想象,不断向右滚动非常烦人,因此我创建了 Sheet2(“数量”)。在此工作表中,我创建了与 Sheet1 相同的标题,只是每个项目没有一列,而是一行。因此,例如:

工作表1:

A1:I1 contains customer information.  No calculating needs to be done here.
J1:DG1 contains a bunch of items (fish, salad, etc).
J2 contains quantity of fish that was ordered by customer A2.
J3 contains quantity of fish that was ordered by customer A3.
K2 contains quantity of salad that was ordered by customer A2.
K3 contains quantity of salad that was ordered by customer A3. 

工作表2:

A1:A102 contains same information as J1:DG1.

明白了吗?太好了。:)

在 Sheet2 中,我希望B1:B102等于SUMSheet1 中其等价项。因此,例如,Sheet2 中的 B1 将是:=SUM(Sheet1!J2:J1048576)(J 列的整个总和)。这很有效。问题是,我如何复制该公式以使其填充B2:B102。如果我复制上面在 B1 中写的内容,我会收到错误。如果我尝试将 B1 的公式复制到,它确实有效C1:DG1,但这违背了目的,我需要将其向下粘贴。(转置也不起作用)。

短暂性脑缺血发作

答案1

这可以使用函数来实现INDEX。为了增加对这个函数的困惑,微软选择实现两种不同类型的函数。我们将使用“数组”变体。有关此函数的更多信息这里。此函数使我们能够选择一个矩阵(您的 Sheet 1)并从中选择一行或一列。该INDEX函数返回对该行或列的引用。接下来,我们将使用SUM添加列中的所有项目。最后一个技巧是选择正确的列。为此,我们将查找在 Sheet 2 中输入编号(使用ROW),并使用它来引用 Sheet 1 中的右列。

现在对于公式:将其放在 B2 中(A 列有产品名称)`=SUM(INDEX(Sheet1!$A:$DG;;9+ROW(Sheet2!A1)))' 并根据需要向下复制粘贴。

关于公式的两点注释:

  • 函数中没有第二个参数INDEX,因此函数返回参考然后添加整列(SUM);
  • ROW需要添加 9 列,因为您的产品数据从 J 列(第 10 列)开始,所以 9+1 = 10,这是要选择的第一列。

最后说明一下:要选择整列,请使用 -notationJ:J而不是J1:J1048576问题中所建议的。

答案2

找到了解决方法。 第二篇帖子在链接线程中。(镜子

正如我在 OP 中提到的,如果我尝试制作Sheet2 B1 =SUM(Sheet!J:J),然后复制它向右,跨列,它将正确地继续公式以匹配C1 =SUM(Sheet1!K:K), D1 =SUM(Sheet1!L:L, etc)。然而,问题是,如果试图复制公式向下,跨行,无法正确处理公式。即使我先复制到右侧,跨列,然后复制,也会出现问题cut/paste-special-transpose。不过,多亏了解决方法,我能够修复转置问题,并让所有单元格都Sheet2 B:B表示SUM来自Sheet1

祝你好运!

编辑:添加解决方法的镜像,以防丢失。

相关内容