从另一个工作表中汇总多个值

时间:2014-03-13 22:15:48

标签: excel excel-formula excel-2010

我需要确定发动机的成本,具体取决于它将使用哪些部件。

我有一张纸,每张发动机型号都有每件零件的成本。有3种发动机型号和近500种零件(!零件)。

在另一张纸上,我尝试将所有各种零件组合的值相加。 (!EngineCost)。我使用" 1"表明包含该部分。我从每个发动机尺寸的零件和总数中获取价格。

目前我手动完成这项工作(见下文)。有更好的方法吗?

= IF(O3 = 1,'零件'!$ R 6 $" 0&#34)+ IF(P3 = 1,'零件'!$ R $ 7," 0&#34)+ IF(Q3 = 1,'零件'!$ R 8 $," 0&#34)

谢谢!

以下是示例表https://www.dropbox.com/s/wbh5muf7721mk0s/engine.xlsx

的链接

1 个答案:

答案 0 :(得分:1)

我的第一个预感是你可以使用以下公式:

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

'Parts'!$R$6:$R$8中的相应单元格等于1时,对O3:O6中的值求和。

然而,正如@simoco指出的那样,你有一个转置 - 一个数组相对于另一个转置。这使得这一点更具挑战性。您需要两个步骤:

  1. 找到值为1
  2. 的单元格
  3. 将这些单元格相加
  4. 以下可以做到:

    =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输入数组公式。