以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  想提取单位数值并求和  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=194062)

--  作者:zhuxinhui
--  发布时间:2024/11/7 9:30:00
--  想提取单位数值并求和
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip

想求出单位前面数字的总和
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241107091936.png
图片点击可在新窗口打开查看

--  作者:y2287958
--  发布时间:2024/11/7 10:04:00
--  
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 


--  作者:有点蓝
--  发布时间:2024/11/7 10:18:00
--  
增加辅助列,按“箱”字符拆分,后把数字取出来放到辅助列,再统计

例如

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 & ",单位=" & 单位)

--  作者:zhuxinhui
--  发布时间:2024/11/7 10:47:00
--  
增加辅助列可能不太实际,我是用在单据录入数据列统计的,单位的规则也不统一
--  作者:zhuxinhui
--  发布时间:2024/11/7 10:56:00
--  
是否可以,
1、先把列的单位数值列出来,例如:
Dim 集合 As New list(Of String)({"10箱5支", "10箱6瓶", "5箱2包", "10箱5扎", "10箱6瓶", "5箱2包"})
2、提取LIST不重复的一个字的中文
3、求每个中文前面数字的和


--  作者:有点蓝
--  发布时间:2024/11/7 10:56:00
--  
不增加辅助列,数据少还好,遍历一下就行。数据多,处理会很慢的。

至于单位,考虑使用正则处理

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

--  作者:zhuxinhui
--  发布时间:2024/11/7 16:08:00
--  
如何将计算出来的结果放到合计栏里面
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241107160626.png
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2024/11/7 16:12:00
--  
把辅助数量里的单位去掉,改为整数列
--  作者:zhuxinhui
--  发布时间:2024/11/7 16:49:00
--  
现在这里就是要先把辅助数量列的不同单位进行汇总,再把数值和单位填到合计栏
--  作者:有点蓝
--  发布时间:2024/11/7 16:54:00
--  
合计没有办法使用代码赋值。

变通方法可以看看:

2、http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171956