Excel:在SUM操作之前将公式应用于每个单元格

我想在一个单元格范围内做一个SUM,而不是使用单元格中的值作为IS,我需要从每个单元格中提取一块用于求和。 在下面的例子中,我需要使用 – 符号前的值。

A 1 1-3 2 2-60 3 5-3 4 =SUM(A1:A3) 

SUM应该加上第一块(在 – 之前)所以1 + 2 + 5

我find了一种通过使用提取数据的方法

 =LEFT(A1, SEARCH("-",A1,1)-1) = 1 =LEFT(A2, SEARCH("-",A2,1)-1) = 2 =LEFT(A3, SEARCH("-",A3,1)-1) = 5 

但是,我怎样才能SUM这些公式的价值,而不必使用更多的额外细胞?

使用数组公式: =SUM(VALUE(LEFT(A1:A3, SEARCH(A1:A3, "-")-1))) 。 然后按下Shift-Ctrl-Enter来告诉Excel这是一个数组公式。

副产品替代品

 =SUMPRODUCT(--(LEFT(A1:A3,FIND(A1:A3,"-")-1))) 

这是一个非CSE公式,它像操作一样执行数组。 因此,您应该避免在产品中使用完整的列引用。 还要注意的是,如果没有 – 在单元格中,事情可能会变得有点“WONKY”。 为了避免这一点,你可以添加一个 – 到最后。 公式看起来像这样:

 =SUMPRODUCT(--(LEFT(A1:A3&"-",FIND(A1:A3&"-","-")-1))) 

这将工作,当你只有整数,没有公式