以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 如何设置公式或编写代码统计? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73937) |
||||
-- 作者:rirong -- 发布时间:2015/8/29 17:46:00 -- 如何设置公式或编写代码统计? 工程师: 您好!请查看附件中的表结构和大概内容,我想统计列明为“盘”的数据中,10个“输”后下一盘是“赢”的有多少个?9个“输”后下一盘是“赢”的有多少个?如此类推一直算到1个“输”后下一盘是“赢”的有多少个?请问应该怎样设置公式或代码实现?
此主题相关图片如下:qq截图20150829173514.png [此贴子已经被作者于2015/9/1 12:03:24编辑过]
|
||||
-- 作者:y2287958 -- 发布时间:2015/8/29 17:49:00 -- 上例子 |
||||
-- 作者:有点蓝 -- 发布时间:2015/8/29 19:17:00 -- 参照这个 Dim dic As New Dictionary(of Integer,String) Dim s() As String = {"输","输","赢","赢","输","输","赢","输","输"} Dim i As Integer = 0 Dim count As Integer =0 Dim current As String For Each s1 As String In s If s1<> current Then count = 1 i+=1 dic.Add(i,s1 & count) current = s1 Else count +=1 dic(i) = s1 & "|" & count End If Next For Each k As Integer In dic.Keys \'显示所有键及其对应的值 Output.Show(K & ":" & dic(k)) Next [此贴子已经被作者于2015/8/29 19:18:04编辑过]
|
||||
-- 作者:rirong -- 发布时间:2015/9/1 11:04:00 -- 按照你的代码执行出现错误 你好!请问Dim s() As String = {"输","输","赢","赢","输","输","赢","输","输"}这个语句只是统计这串字符里的字吗?还是可以统计整个表里成百甚至上千个“输赢”? 我要的是假设有200行的数据,在列名为”盘“的输赢数据中分别统计出”十个输下一个赢“有出现有多少次?把结果显示在列名为”十个输下一个赢“下面的单元格内。 ”九个输下一个赢“有出现有多少次?把结果显示在列名为”九个输下一个赢“下面的单元格内 ”八个输下一个赢“有出现有多少次?把结果显示在列名为”八个输下一个赢“下面的单元格内 。。。。。。 ”一个输下一个赢“有出现有多少次?把结果显示在列名为”一个输下一个赢“下面的单元格内 此主题相关图片如下:输赢统计例子.jpg
|
||||
-- 作者:rirong -- 发布时间:2015/9/1 11:06:00 -- 统计输赢数据例子 你好!请查看附件例子。
|
||||
-- 作者:rirong -- 发布时间:2015/9/1 12:05:00 -- 请专家帮忙看看 请专家帮忙看看 |
||||
-- 作者:大红袍 -- 发布时间:2015/9/1 12:31:00 -- Dim t As Table = Tables("表A") Dim count As Integer = 0 t.Rows(0)("十个输下一个赢") = 0 t.Rows(0)("九个输下一个赢") = 0 For Each r As Row In t.Rows If r("盘") = "输" Then count += 1 ElseIf r("盘") = "赢" Then Select Case count Case 10 t.Rows(0)("十个输下一个赢") += 1 Case 9 t.Rows(0)("九个输下一个赢") += 1 Case 8 Case 7 Case 3 End Select count = 0 End If Next |
||||
-- 作者:y2287958 -- 发布时间:2015/9/1 12:50:00 -- \'表格中某列D Dim sts,st As String Dim drs As List(of DataRow) = DataTables("表A").Select("","_SortKey") If drs(0)("盘") = "输" \'判断第一行值是否为"A" sts = "输" End If For i As Integer = 1 To drs.Count - 1 If drs(i)("盘") = drs(i-1)("盘") AndAlso drs(i)("盘") = "赢" Continue For Else sts += drs(i)("盘") End If Next Output.Show(sts) Dim dic As new Dictionary(of String,Integer) For i As Integer = 0 To sts.Split("赢").Length-2 st = sts.Split("赢")(i) If dic.ContainsKey(st) dic(st) += 1 Else dic.Add(st,1) End If Next For Each key As String In dic.Keys output.show(key & ":" & dic(key)) Next
|
||||
-- 作者:rirong -- 发布时间:2015/9/1 13:41:00 -- 请问这段代码应在哪里输入? 谢谢您的回复,请问这段代码应在哪里输入? |
||||
-- 作者:rirong -- 发布时间:2015/9/1 13:43:00 -- 请问这段代码应在哪里输入? 请问这段代码应在哪里输入? |