想求出单位前面数字的总和
此主题相关图片如下:微信截图_20241107091936.png
Dim 集合 As New list(Of String)({"10箱5支", "10箱6瓶", "5箱2包", "10箱5扎", "10箱6瓶", "5箱2包"})
Output.Show(集合.Select(Function(元素) CInt(元素.Split("箱")(0))).sum & "箱")
Dim 单位集 As New list(Of String)(集合.Select(Function(元素) Right(元素, 1)).Distinct)
For Each 单位 As String In 单位集
Output.Show(集合.Where(Function(元素) Right(元素, 1) = 单位).Select(Function(元素) CInt(元素.Split("箱")(1).Split(单位)(0))).sum & 单位)
Next
增加辅助列,按“箱”字符拆分,后把数字取出来放到辅助列,再统计
例如
Dim s As String = "5箱2包"
Dim ss() As String = s.split("箱")
Dim 箱 As Integer = ss(0)
Dim 单位 As String = right(ss(1), 1)
Dim b As Integer = ss(1).TrimEnd(单位)
Output.Show(箱 & "," & b & ",单位=" & 单位)
增加辅助列可能不太实际,我是用在单据录入数据列统计的,单位的规则也不统一
不增加辅助列,数据少还好,遍历一下就行。数据多,处理会很慢的。
至于单位,考虑使用正则处理
Dim s As String = "5箱2包"
Dim p As String = "\d+"
Dim r As New System.Text.RegularExpressions.Regex(p)
Dim str = r.Split(s)
For Each a As String In str
Output.Show(a)
Next
p = "[^\d+]" '[^\d+]
r = New System.Text.RegularExpressions.Regex(p)
str = r.Split(s)
For Each a As String In str
Output.Show(a)
Next
如何将计算出来的结果放到合计栏里面
此主题相关图片如下:微信截图_20241107160626.png
现在这里就是要先把辅助数量列的不同单位进行汇总,再把数值和单位填到合计栏
合计没有办法使用代码赋值。
变通方法可以看看:
2、http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171956