Foxtable(狐表)用户栏目专家坐堂 → 如何从多值字段中提取相同数字的个数


  共有1828人关注过本帖树形打印复制链接

主题:如何从多值字段中提取相同数字的个数

帅哥哟,离线,有人找我吗?
ZJZK2018
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
如何从多值字段中提取相同数字的个数  发帖心情 Post By:2018/7/16 1:08:00 [只看该作者]

如题

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/16 9:02:00 [只看该作者]

具体一点你的问题。解脱或者实例说明。

 

是某一个单元格的个数,还是整一列的个数?每一个单元格的数字值是否会有重复的出现?


 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/16 10:33:00 [只看该作者]

有点甜老师:
表A中“第一列” 为多值字段列,如:(第一行)AA,BB,CC;   (第二行)CC,FF,AA;   (第三行)BB,CC,PP
在表B中“第二列”输入一个AA,“第三列”得出一个2,输入CC 得出一个3

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/16 10:59:00 [只看该作者]

如果多值字段不重复,直接统计即可,如

 

Dim count As Integer = DataTables("表A").Compute("count(第一列)", "(',' + 第一列 + ',') like '%," & "AA" & ",%'")
msgbox(count)


 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/20 14:41:00 [只看该作者]

老师
我先增加一个“Tables("抽签入围台帐_Table01")”临时统计表,其中有"市内家数_汇总"为多值列,然后想从这个表的多值列中提取相同编号的个数。
下面这段红色部分代码出错,如何调整?谢谢

'=======增加临时市内入围编号统计表=========

Dim dtb As New DataTableBuilder("入围编号统计表1")
dtb.AddDef("市内入围_编号", Gettype(Integer))
dtb.AddDef("市内入围_次数", Gettype(Integer))
dtb.AddDef("市内入围_比例", Gettype(Single))
'dtb.Build()  '显示临时统计表
Dim tb1 As Table = Tables("抽签入围台帐_Table3")
tb1.DataSource  = dtb.BuildDataSource()

'================界面调整=================
tb1.SetColVisibleWidth("市内入围_编号|80|市内入围_次数|80|市内入围_比例|80")
tb1.DefaultRowHeight = 32
tb1.Cols("市内入围_比例").DataCol.SetFormat("0.00%")

Dim tb As Table = Tables("抽签入围台帐_Table01")
Dim tb3 As Table = Tables("抽签入围台帐_Table3")
Dim cnt As Integer
Dim lst As New List(Of String)
For Each rw As Row In tb.Rows
    For Each a As String In rw("市内家数_汇总").split(",")
        If lst.Contains(a) = False Then
            lst.add(a)
        End If
    Next
Next
'msgbox(String.Join("|", ls.ToArray))
Dim ndr As Row
For Each nn As String In lst
    ndr = tb3.AddNew()
    ndr("市内入围_编号") = nn
Next
For Each rw As Row In tb3.Rows
    If  rw.IsNull("市内入围_编号") = False Then
        rw("市内入围_次数") = tb.DataTable.Compute("Count(市内家数_汇总)","(',' + 市内入围_编号 + ',') like '%," & rw("市内入围_编号") & ",%'")
    End If
Next

执行上面代码出现下面错误提示:
.NET Framework 版本:2.0.50727.8762
Foxtable 版本:2018.7.9.1
错误所在事件:窗口,抽签入围台帐,Button2,Click
详细错误信息:
未找到列 [市内入围_编号]。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/20 17:06:00 [只看该作者]

提示很明显,你tb表或者tb3表,没有对应的列【市内入围_编号】,请改成对应的列名。

 回到顶部
帅哥哟,离线,有人找我吗?
ZJZK2018
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:767 积分:6119 威望:0 精华:0 注册:2018/2/1 17:26:00
  发帖心情 Post By:2018/7/20 17:16:00 [只看该作者]

有点甜老师:
没有对应的列【市内入围_编号】不是已经新增了吗?Dim tb As Table = Tables("抽签入围台帐_Table01")这个是临时表,是不是临时表没对应的DataTable, rw("市内入围_次数") = tb.DataTable.Compute("Count(市内


图片点击可在新窗口打开查看此主题相关图片如下:777.png
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/7/20 17:58:00 [只看该作者]

你 抽签入围台帐_Table01 表的数据是怎样的?截图说明。你要统计这个表什么数据?条件是什么?

 回到顶部