以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何实现统计table中某一列的不同值的数量 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60685) |
-- 作者:一笑 -- 发布时间:2014/11/29 10:09:00 -- 如何实现统计table中某一列的不同值的数量 我能想到:如是datatable,可用getvalues函数获得集合,然后count 但如何统计table中某一列的不同值的数量?谢谢
|
-- 作者:Bin -- 发布时间:2014/11/29 10:43:00 -- http://www.foxtable.com/help/topics/0393.htm |
-- 作者:一笑 -- 发布时间:2014/11/29 10:52:00 -- count能统计列中所有值的个数,而不能统计不同值的数量。谢谢 |
-- 作者:Bin -- 发布时间:2014/11/29 11:09:00 -- 不明白你的意思,你想要交叉统计? 分组统计? |
-- 作者:一笑 -- 发布时间:2014/11/29 11:26:00 -- 就是一个table表,不是datatable,比如说筛选后的table表,我想统计表中"机型"列中不同机型的数量。 |
-- 作者:逛逛 -- 发布时间:2014/11/29 11:33:00 -- 方法一、遍历table统计
方法二、转datatable ,取集合 (table.daatable.GetValues(列名,table.Filter)),遍历统计
方法三、转datatable ,用GroupTableBuilder 统计 ,再遍历读取 |
-- 作者:一笑 -- 发布时间:2014/11/29 21:29:00 -- 用了第2种方法,成功;第一种还不会,新手,麻烦指点,谢谢 |
-- 作者:有点甜 -- 发布时间:2014/11/29 21:31:00 -- dim cnt as integer for each r as row in tables("aaa").rows if r("某列") = 某值 then cnt = cnt +1 end if next
|
-- 作者:一笑 -- 发布时间:2014/11/29 22:08:00 -- 这只能统计某一个值的数量,而不是该列所有不同值的数量。比如,机号列中数量是2(B8271,B8266)。我试着写了一下,报错,麻烦指点,谢谢 For Each r As Row In Tables("筛选").rows Dim acs As List(Of String) = r("机号") Dim cnt1 As Integer = acs.Count Next |
-- 作者:y2287958 -- 发布时间:2014/11/29 22:09:00 -- 堆了半天楼 咋就不愿意上个例子呢
|