多语言展示
当前在线:1306今日阅读:163今日分享:20

Excel求解满足条件的和

如下表所示,要求解A列里边单元格的最后一个斜杠后面的数值之和(例如:A1单元格最后一个斜杠后面的值是17)。纵观A列里面的数值,斜杠并没有规律,个数也不一样,此时自然不能采用分列的方法进行求和。想来想去,还是可以使用VBA程序和替换两种方法进行求解。
工具/原料
1

计算机

2

Windows 7

3

Excel 2010

方法一:使用VBA程序求解
1

打开Excel表格,依次点击【开发工具】、【Visual Basic】打开VBA编辑器,也可以使用【Alt+F11】组合键打开VBA编辑器。

2

VBA编辑器的菜单栏上面点击【插入】,在下拉选项里面选择“模块”。

3

在模块的代码框里面输入以下VBA程序代码,然后按下【F5】键运行程序。Sub NumberSum()Dim i1, i2, i3, i4On Error Resume Next  '忽略运行过程中可能出现的错误Set mysheet1 = ThisWorkbook.Worksheets('Sheet1')  '定义工作表(Sheet1)mysheet1.Range('B1:B1000') = ''  '清空B1:B1000For i1 = 1 To 1000  '从第一行到1000行 i2 = 0     'i2初始化为0  Do   i3 = i2  '把i2的值赋给i3   i2 = InStr(i3 + 1, mysheet1.Cells(i1, 1), '/') '获取单元格里面斜杠(/)的位置   If i2 = 0 Then  '如果依次找不着斜杠,则退出Do循环    Exit Do   End If  Loop i4 = Len(mysheet1.Cells(i1, 1)) - i3  '最后一个字符到最后一个斜杠的字符长度 mysheet1.Cells(i1, 2) = Right(mysheet1.Cells(i1, 1), i4)  '截取最后一个斜杠后面的值填入B列Nextmysheet1.Cells(1, 3) = Application.WorksheetFunction.Sum(mysheet1.Range('B1:B1000'))'B1:B1000求和填入C1End Sub

4

回到Excel工作表界面,将会看到B列已经分离出最后一个斜杠(/)后面的数值,C1单元格便是B列单元格“B1:B1000”的数值之和。

方法二:使用替换法求解
1

选择A列,之后按下【Ctrl+H】组合键调出“查找和替换”的会话框。

2

在【替换】的“查找内容”里面输入“*/”,“替换为”里面留空,再点击【全部替换】。(主要是把斜杠和前面所有的字符替换成空白)

3

替换完成,在D1单元格里边输入公式=SUM(A1:A1000)即可求解出要求的和。

注意事项
1

使用VBA程序和替换法求和时,应当先做好文件备份,以免数据丢失。

2

个人经验,仅供参考。

推荐信息