Google表格 - 来自多个单元格的值的总和,具体取决于相应单元格中的文本

时间:2016-04-03 11:27:38

标签: google-sheets formulas

尽管有人在挖掘,但我无法弄清楚这一点,所以希望有人知道该怎么做。对于我正在进行的项目,我有一张大纸,如果可能的话,我想自动完成一些,因为有很多单元需要管理。

对于项目的几个不同的小区域,我至少需要三件事情,我希望从旁边的材料清单中挑选。

目前的工作原理如下:

      B                 C                D                 E
2 Project Name |  Material #01  |  Material #02  | Material #03   |
3              |Quantity needed |Quantity needed |Quantity needed |

这种模式一直持续到第50行,我将它布置在多列之间以提高空间效率。 [以上例子也在H2:K3]

离开右侧我有一个地方可以跟上这个引用的材料,例如:

       M               N            O           P
2 Material #01 | Material Name | # I have | # I need
3 Material #03 | Material Name | # I have | # I need

这也是双重部分,S2上的偶数:W3。

我想要完成的是,如果 - C2,E2和D12都包含"材料#01",它将获取下面单元格中的数字,即C3,E3和D13,然后将它们加起来并将最终数字放在P2中作为我需要的数量。但是,我需要这是一个我不必手动更改的东西,所以我希望它能够检测我是否要将C2更改为"材料#03"然后将总和放入P3中。

可以这样做吗?我可以根据要求添加更多信息或澄清任何内容。我自己并没有取得很大的进展。如果已经回答了这个问题,请原谅我,我一直在尝试各种各样的措辞来试图寻找这个,但是我可能会错过像小丑一样明显的东西。

1 个答案:

答案 0 :(得分:0)

良好的解决方案

我想,最好的方法是妥善整理数据。这意味着,将数据粘贴到简单表中:

Project Name    Product Number  Quantity needed
Project1        #01                           1
Project1        #02                           2
Project1        #03                           1
Project2        #11                           5
Project2        #07                           6
Project2        #14                           6

将此值粘贴到范围A:C中,然后只使用多个Google表数据操作公式之一,例如查询:

=QUERY({A:C},"select Col2, sum(Col3) where Col2 <> '' group by Col2")

我已添加Sample file

解决方案

您的案例非常具体,最终公式容易出错,难以阅读。

将此公式粘贴到单元格P2中:

=ARRAYFORMULA(IFERROR(VLOOKUP(L2:L49,QUERY({query(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,iseven(row(C2:J)))&"-")),"-")),"where Col1 like '#%' limit "&counta(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,ISODD(row(C2:J)))&"-")),"-")))),TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,ISODD(row(C2:J)))&"-")),"-"))},"select Col1, sum(Col2) group by Col1"),2,0)))

和单元格V2中的这个公式:

=ARRAYFORMULA(IFERROR(VLOOKUP(R2:R49,QUERY({query(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,iseven(row(C2:J)))&"-")),"-")),"where Col1 like '#%' limit "&counta(TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,ISODD(row(C2:J)))&"-")),"-")))),TRANSPOSE(SPLIT(ArrayFormula(CONCATENATE(FILTER(C2:J,ISODD(row(C2:J)))&"-")),"-"))},"select Col1, sum(Col2) group by Col1"),2,0)))

它们会自动扩展。

工作原理:请look at example here。如果您对公式有任何疑问,请随时提出。

两个公式都在寻找范围L2:L49R2:R49。如果需要,可以将它们更改为您的。