使用Excel公式根据前面的字母SUM数字

时间:2014-08-26 13:52:06

标签: excel excel-formula

我有一个带有几个单元格的电子表格,其中包含以下输入:

V4 V5 V2 V3 V5 V7

我试图告诉Excel检查前面的值,看看它是否为V. 如果为TRUE,则计算其旁边的值。这必须在循环中完成,直到它通过范围并总结所有值。

这个公式让我差不多......但仍然没有可行的输出。

=SUMPRODUCT(--(LEFT(A1:AO1,1)="V")*SUM(RIGHT(A1:AO1,1)))

VBA不是一种选择。

4 个答案:

答案 0 :(得分:1)

你非常接近,使用数组公式

=SUMPRODUCT(--(LEFT(A1:AO1,1)="V"),IFERROR(--RIGHT(A1:AO1,1),0))
必须使用 Ctrl + Shift + 输入输入

数组公式,而不仅仅是 Enter key。

修改#1:

guitarthrower 的评论中所述,如果 V后面有多个数字:

,这将有效
=SUMPRODUCT(--(LEFT(A1:AO1,1)="V"),IFERROR(--RIGHT(A1:AO1,LEN(A1:AO1)-1),0))

修改#2:

如果您在2007年之前使用的是 Excel 版本,请使用此数组公式:

=SUMPRODUCT(--(LEFT(A1:AO1,1)="V"),IF(ISERROR(--RIGHT(A1:AO1,LEN(A1:AO1)-1)),0,--RIGHT(A1:AO1,LEN(A1:AO1)-1)))

答案 1 :(得分:0)

假设V旁边的值是一位数长,您可以在excel中使用以下IF语句来检查是否确实存在V,然后将单元格分配给V旁边的值,或零。

=IF(LEFT(A1; 1)="V"; RIGHT(A1;1);0)

之后,您可以稍微调整一下。

答案 2 :(得分:0)

不要与excel战斗,显而易见的解决方案是:

  =IF(LEFT(A1,1) = "v", RIGHT(A1,1), 0)
列上的

(你可以隐藏它),然后正常加总。

答案 3 :(得分:0)

其他答案都需要帮助栏,但您的问题似乎表明您正在努力避免这些问题。 尝试下面的公式(必要时调整范围):

=SUMPRODUCT(--(LEFT(A1:A8,1)="V"),VALUE(RIGHT(A1:A8,1)))

请注意,只有在信件后的数字始终是一位数

时,这才有效