以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  如何从多值字段中提取相同数字的个数  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=121927)

--  作者:ZJZK2018
--  发布时间:2018/7/16 1:08:00
--  如何从多值字段中提取相同数字的个数
如题
--  作者:有点甜
--  发布时间:2018/7/16 9:02:00
--  

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

 

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


--  作者:ZJZK2018
--  发布时间:2018/7/16 10:33:00
--  
有点甜老师:
表A中“第一列” 为多值字段列,如:(第一行)AA,BB,CC;   (第二行)CC,FF,AA;   (第三行)BB,CC,PP
在表B中“第二列”输入一个AA,“第三列”得出一个2,输入CC 得出一个3

--  作者:有点甜
--  发布时间:2018/7/16 10:59:00
--  

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

 

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


--  作者:ZJZK2018
--  发布时间: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
详细错误信息:
未找到列 [市内入围_编号]。

--  作者:有点甜
--  发布时间:2018/7/20 17:06:00
--  
提示很明显,你tb表或者tb3表,没有对应的列【市内入围_编号】,请改成对应的列名。
--  作者:ZJZK2018
--  发布时间:2018/7/20 17:16:00
--  
有点甜老师:
没有对应的列【市内入围_编号】不是已经新增了吗?Dim tb As Table = Tables("抽签入围台帐_Table01")这个是临时表,是不是临时表没对应的DataTable, rw("市内入围_次数") = tb.DataTable.Compute("Count(市内


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



--  作者:有点甜
--  发布时间:2018/7/20 17:58:00
--  
你 抽签入围台帐_Table01 表的数据是怎样的?截图说明。你要统计这个表什么数据?条件是什么?