
若是的话
可以通过添加辅助列实现的
复制该列数据到新列,并选中新列
替换-----选项-----格式----从单元格选择格式----点击有删除线的单元格----全部替换为0
然后在新列需得到合计数值的位置用sum()函数求和就行了
下线划,属于格式问题,公式是无法提取的,需要用VBA写程序来提取。
前提你的Office版本是支持VBA的。如果是WPS个人版,是用不了VBA的。
方法:
第一步、
启用一张全新的工作表,把你需要提取的数据,整列复制到新表的A列中。
第二步、
按Alt+F11打开VBA编辑器,
按图上的箭头指示,
先点“插入”---“模块”,
在左侧的工程资源管理器中,双击模块,
在右侧的模块代码编辑区中,粘贴代码。
最后,点击画圆圈的那个按钮,运行代码,即可。
如果数据较多,就适当的等它运行一会,它提取完以后会d出提示的。
代码如下:
Sub 提取下划线内容()
Dim rng As Range, rg As Range, i%, Irow&, Istr$, k%
Irow = Range("A" &Rows.Count).End(3).Row '获取A列的最大行号
For Each rng In Range("A1:A" &Irow) '遍历A列每一个有数据的单元格
For i = 1 To Len(rng) '遍历单元格中每一个字符
If rng.Characters(Start:=i, Length:=1).Font.Underline <>xlUnderlineStyleNone Then
Istr = Istr &Mid(rng, i, 1)
If i = Len(rng) Then k = 1
Else
If Istr <>"" Then k = 1
End If
If k = 1 Then '输出结果
Cells(rng.Row, Columns.Count).End(1).Offset(0, 1) = Istr
k = 0: Istr = "" '重置变量
End If
Next
Next
MsgBox "提取完毕", 64 'd出提示
End Sub
需要VBA编写宏命令实现,你要做什么样的统计运算?可以给你写一个自定义的统计函数:Public Function 剔除双划线的统计(RNG As Range, CalType As String) As Double
Dim MyRng As Range, Rng1 As Range
For Each Rng1 In RNG
If Not Rng1.Font.Underline = xlUnderlineStyleDouble Then
If MyRng Is Nothing Then Set MyRng = Rng1 Else Set MyRng = Application.Union(MyRng, Rng1)
End If
Next
Select Case CalType
Case "平均值"
剔除双划线的统计 = Application.WorksheetFunction.Average(MyRng)
Case "求和"
剔除双划线的统计 = Application.WorksheetFunction.Sum(MyRng)
Case "计数"
剔除双划线的统计 = Application.WorksheetFunction.Count(MyRng)
Case "最大值"
剔除双划线的统计 = Application.WorksheetFunction.Max(MyRng)
Case "最小值"
剔除双划线的统计 = Application.WorksheetFunction.Min(MyRng)
Case Else
剔除双划线的统计 = Application.WorksheetFunction.Sum(MyRng)
End Select
End Function
以上自定义函数的使用方法是
=剔除双划线的统计(单元格区域,"统计方法名称")
统计方法名称有"平均","求和","计数","最大值","最小值"五种,默认是"求和"方式
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)