1

我有一个类似这样的 Excel 文件:

19-FM05     Heater      2.0 4.0
19-PB09 (M) Motor HPU   4.0 6.0
19-PB10A(M) Fan Motor   6.0 2.0
19-PB11A(M) Motor WCU   3.0 7.0
            Motor      13.0 15.0
            Other       2.0 4.0
            Sum        15.0 19.0

我希望能够区分包含(M)在 A 列、单词MotormotorB 列中的列,然后对所有电机行和所有其他行求和。

之后可能有空格(M),并且所有包含的行(M)也包含下一列中的单词Motor

vlookup我不习惯在 Excel 中使用更高级的东西(例如 VBA) ,并且找不到使用find或类似的方法来做到这一点。有什么建议么?

4

4 回答 4

1

这应该与SUMPRODUCT. 您可以使用它来计算逐行乘积并将它们相加。在此,您可以使用评估为 1 或 0 的条件。电机总和(C5 中的 13.0)将是:

=SUMPRODUCT(NOT(ISERROR(FIND("(M)",A1:A4)))*(C1:C4))
于 2013-09-20T11:40:23.153 回答
0

我使用的方法是从数字列中创建一个列,如果满足条件,则包含数字,否则为 0。因此,在您的情况下,使用公式制作一列

=IF(ISNUMBER(搜索("(M)",A1)),C1,0)

在第一行,然后将其复制到列中。然后,当您对该新列求和时,您将仅获得包含“(M”)的行的总和

于 2013-09-20T11:38:55.570 回答
0

=IFERROR(IF(FIND("(M)",A1)>0,"是","否"),"否")

如果将其粘贴在 D 列中,如果 A1 包含“(M)”,它将返回 yes,如果不包含,则返回 no。这将帮助你过滤,你可以玩弄它。然后,您可以使用 SUMIF 函数对 D 列包含 Yes 的行求和。

可能有一种更优雅的方式来做这件事,但这让它变得简单,并且可读。

于 2013-09-20T11:40:26.127 回答
0

我建议使用一个辅助列(比如 A),=IF(IFERROR(FIND("M)",B2),0)+IFERROR(SEARCH("motor",C2),0)>0,"TRUE","")向下和=SUMIF($A2:$A5,"TRUE",D2:D5)右侧Motor复制并复制,计算为和与后者Other之间的差异,后者使用 AutoSum 计算。MotorSum

于 2013-09-20T11:57:25.543 回答