Rss & SiteMap

Foxtable(狐表) http://www.foxtable.com

新一代数据库软件,完美融合Access、Foxpro、Excel、vb.net之优势,人人都能掌握的快速软件开发工具!
共10 条记录, 每页显示 10 条, 页签: [1]
[浏览完整版]

标题:想提取单位数值并求和

1楼
zhuxinhui 发表于:2024/11/7 9:30:00
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目2.zip

想求出单位前面数字的总和
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241107091936.png
图片点击可在新窗口打开查看
2楼
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 

3楼
有点蓝 发表于: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 & ",单位=" & 单位)
4楼
zhuxinhui 发表于:2024/11/7 10:47:00
增加辅助列可能不太实际,我是用在单据录入数据列统计的,单位的规则也不统一
5楼
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、求每个中文前面数字的和

6楼
有点蓝 发表于: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
7楼
zhuxinhui 发表于:2024/11/7 16:08:00
如何将计算出来的结果放到合计栏里面
图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20241107160626.png
图片点击可在新窗口打开查看
8楼
有点蓝 发表于:2024/11/7 16:12:00
把辅助数量里的单位去掉,改为整数列
9楼
zhuxinhui 发表于:2024/11/7 16:49:00
现在这里就是要先把辅助数量列的不同单位进行汇总,再把数值和单位填到合计栏
10楼
有点蓝 发表于:2024/11/7 16:54:00
合计没有办法使用代码赋值。

变通方法可以看看:

1、http://www.foxtable.com/webhelp/topics/1911.htm
2、http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&Id=171956
共10 条记录, 每页显示 10 条, 页签: [1]

Copyright © 2000 - 2018 foxtable.com Tel: 4000-810-820 粤ICP备11091905号

Powered By Dvbbs Version 8.3.0
Processed in .04297 s, 3 queries.