2016-04-03 60 views
0

尽管如此,希望有人能够知道该怎么做,但我无法弄清楚这一点。我为我正在开发的一个项目准备了一个大型表单,如果可能的话,我想自动化一下,因为有太多的单元需要管理。Google表格 - 来自多个单元格的值的总和取决于相应单元格中的文本

我需要至少三个东西,用于项目的几个不同的小区域,我希望从侧面的材料列表中挑选出来。

目前,它的工作原理是这样的:

 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都包含“Material#01”,它将抓取下面单元格中的数字,即C3,E3和D13,然后将它们相加并将最终数字放在P2中作为我需要的数量。但是,我需要这样做,我不必手动更改,所以我希望它能检测是否要将C2更改为“Material#03”,然后将总和置于P3中。

可以这样做吗?我可以根据要求添加更多信息或澄清任何事情。我自己并没有取得很大的进展。如果这个问题得到解答,请原谅我,我一直在想尽一切办法去寻找这个问题,但我可能错过了一些明显的例如clownshoe。

+0

请问您可以添加样本表 - 您可以在其中填入虚拟数据,但要准确回答需要查看我们实际使用的条件样本 –

+0

@AuriellePerlmann https://docs.google.com/spreadsheets/ d/1fRAA9uDdu_xOLDsCoAHKhuOe7hDQXpIlYHxjYBndM6U/edit?usp = sharing这是一份副本。自从我发布这些行后,行发生了一些变化,但它完全相同。如果可能的话,我想让列P和V自动添加,因为我将它们放在正确的区域! – smallcrate

回答

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 

粘贴范围内的这个值:C,然后只用多个谷歌表数据处理公式之一,像查询:

=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。如果需要,将它们更改为您的。

+0

问题在于它垂直占用大量空间,我真的不喜欢这样做。您还忽略了我在示例中显示的重复出现的所有内容,这些内容在实际展示它的过程中没有多大帮助。我想过做这样的事情,但它所占用的空间又是唯一的问题,因为我有很多事情要保持直线,所以我需要尽可能快地看到我能做到的事情。如果这是我唯一的选择,那么我可能会再多一些,或者继续手动进行。 – smallcrate

+0

我已经更新了答案;) –

相关问题