以文本方式查看主题

-  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
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:输赢统计例子.rar

请问我可以直接加你QQ吗?我QQ是17430566
图片点击可在新窗口打开查看此主题相关图片如下:错误提示.jpg
图片点击可在新窗口打开查看


--  作者:rirong
--  发布时间:2015/9/1 11:06:00
--  统计输赢数据例子
你好!请查看附件例子。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:输赢统计例子.rar

请问我可以加你QQ吗?我QQ是17430566
图片点击可在新窗口打开查看此主题相关图片如下:输赢统计例子.jpg
图片点击可在新窗口打开查看

--  作者: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
--  请问这段代码应在哪里输入?
请问这段代码应在哪里输入?