2014-03-13 39 views
0

我需要确定引擎的成本,具体取决于将使用哪个部分。从另一张表中总结多个值

我有一张表,每个引擎模型的每个部分的成本。有3个发动机型号和近500个零件(!部件)。

在另一张工作表中,我尝试将所有各种组合的值相加。 (!EngineCost)。我使用“1”来表示包含该部分。我从每件发动机的零件中获取价格并将其总计。

目前我正在非常手动地做这件事(见下文)。有一个更好的方法吗?如果(0 3 = 1,'Parts'!$ R $ 6,“0”)+ IF(P3 = 1,'Parts'!$ R $ 7,“0”)+ IF(Q3 = 1,''零件'!$ R $ 8,“0”)

谢谢!

这里是链接到一个样品片材https://www.dropbox.com/s/wbh5muf7721mk0s/engine.xlsx

+0

你的公式可以简化如下:'= MMULT(O3:Q3,'Parts'!R6:R8)'。这是你需要的吗?如果没有 - 这将是很好的显示您的工作表 –

+0

@simoco不同的结构。如果“O3:Q3”中的单元格具有除“1”以外的任何值,则将乘以该数字。你的公式假定,如果他们不是1,他们必须是零。这可能是真的,但这不是问题的写法。 – Floris

+0

@弗洛里斯,也许你是对的,'我使用“1”来表示包含该部分 - 我假设'1'表示包含,否则 - '0'或空。 –

回答

1

我的第一直觉是,你可以使用下面的公式:

=SUMIFS(O3:O6, 1, 'Parts'!$R$6:$R$8) 

该总和的值在'Parts'!$R$6:$R$8O3:O6对应的小区是等于1.

但是,正如@simoco指出的,你有一个转置 - 一个数组相对于另一个转置。这使得这件事情更具挑战性。您需要两个步骤:

  1. 发现有1个
  2. 合计值这些细胞

下可以做到这一点的细胞:

=SUMPRODUCT((O3:Q3=1), TRANSPOSE('Parts'!$R$6:$R$8)) 

输入作为数组公式*);或者,考虑的事实,即矩阵乘法是真正的元件通过与列向量的行向量,随后通过取总和的元素乘法优点:

=MMULT(I3:K3,IF(G4:G6=1,1,0)) 

再次输入作为数组式*)。

* )通过在PC上按Ctrl-Shift-Enter或在Mac上按cmd-shift-enter键输入数组公式。

+0

弗洛里斯,正如我所见,它应该是sumif但不是sumifs,但是两者都不起作用,因为一个范围是水平的而另一个是垂直的。它应该是这样的:'= SUMPRODUCT((O3:Q3 = 1)* TRANSPOSE('Parts'!$ R $ 6:$ R $ 8))'数组条目 –

+1

@simoco你是对的,我没有发现那是一个转置。我已经更新了几个备选方案,谢谢你指出! – Floris

+0

谢谢大家!这工作 - = SUMPRODUCT((O3:Q3 = 1),TRANSPOSE('零件'!$ R $ 6:$ R $ 8)) – user3417482

相关问题