对于项目的几个不同的小区域,我至少需要三件事情,我希望从旁边的材料清单中挑选。
目前的工作原理如下:
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中。
可以这样做吗?我可以根据要求添加更多信息或澄清任何内容。我自己并没有取得很大的进展。如果已经回答了这个问题,请原谅我,我一直在尝试各种各样的措辞来试图寻找这个,但是我可能会错过像小丑一样明显的东西。
答案 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:L49
和R2:R49
。如果需要,可以将它们更改为您的。