假设我有一个如下所示的电子表格。
A |B
----------------
1 |1.0 2016-05-07
2 |0.5 2016-04-12
3 |x.y yyyy-MM-dd
我如何才能将这些第一个值相加(1.0
,0.5
)?
答案1
您可以使用如下数组公式:
=SUMPRODUCT(1*LEFT(A1:A3,FIND(" ",A1,1)-1))
其中 A1:A3 是数据列,数字和日期之间始终有一个空格,公式会找到第一个空格并读取左侧的数字,并使用 Ctrl + Shift + Enter 而不是数组公式中的“Enter”,sumproduct 会将数字相加。
如果您的数据并非始终以数字开头,您可以使用:
=SUMPRODUCT(IF(ISNUMBER(VALUE(LEFT(A1:A3,FIND(" ",A1,1)-1))),1*LEFT(A1:A3,FIND(" ",A1,1)-1),0))
答案2
编辑 - 我的错误 - 您可以使用基本的 Excel 函数来完成 - 查看答案!
这是使用 VBA 模块和自定义公共函数的另一种方法
在 VBA 代码中插入此
Public Function SumLeftData(rgeData As Range) As Double
Dim celVal As Object
For Each celVal In rgeData.Cells
SumLeftData = SumLeftData + Left(celVal, 3)
Next
End Function
举个例子,你可以在单元格 C3 中(或其他位置)插入公式,=SumLeftData(B1:B3)
笔记
确保它在 Module1 中 - 而不是在工作簿代码中