以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  如何计算单元格相同字符的数量  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=73522)

--  作者:lismn456
--  发布时间:2015/8/20 16:16:00
--  如何计算单元格相同字符的数量
各位朋友,谁知道如何计算每行单元格相同字符的个数?
--  作者:大红袍
--  发布时间:2015/8/20 16:21:00
--  
 举例说明,最好上传foxtable项目。
--  作者:有点蓝
--  发布时间:2015/8/20 16:24:00
--  
可以巧用split来计算
如果要算"a"相同的次数
Dim s As String ="abcabcdddssza"
Dim str() As String = s.Split("a")
output.show(str.length-1)

--  作者:lismn456
--  发布时间:2015/8/20 16:29:00
--  
我做了一个考勤表格,从1号到月底怎么统计每个人的出勤,缺勤,请假等在相应的列中自动计算出数值                               
--  作者:大红袍
--  发布时间:2015/8/20 16:35:00
--  

参考代码

 


For Each r As Row In Tables("表A").Rows
    Dim count1 = 0
    Dim count2 = 0
    For Each c As Col In Tables("表A").cols
        If c.name Like "*第*" Then
            If r(c.name) = "出勤" Then
                count1 += 1
            ElseIf r(c.name) = "缺勤" Then
                count2 += 2
            End If
        End If
    Next
    r("第九列") = count1
    r("第十列") = count2
Next


--  作者:有点蓝
--  发布时间:2015/8/20 16:38:00
--  
先按名字分组,再按名字去统计吧,把日期作为查询条件
--  作者:lismn456
--  发布时间:2015/8/20 16:48:00
--  
我原来是用excel做的,但是导入foxtable后,计算公式就不能用了,不知道如何在foxtable中输入像Excel表格中“=COUNTIF(E10:K10,"√")”指令的效果
--  作者:大红袍
--  发布时间:2015/8/20 16:53:00
--  

 如果用表达式,就这样写

 

iif(某列=\'勾\', 1, 0) + iif(某列=\'勾\', 1, 0) + iif(某列=\'勾\', 1, 0)


--  作者:大红袍
--  发布时间:2015/8/20 16:54:00
--  

如果用按钮,就参考5楼代码


--  作者:大红袍
--  发布时间:2015/8/20 16:56:00
--  

也可以写到datacolchanged事件

 

If e.DataCol.name Like "*第*" Then
    Dim count1 = 0
    Dim count2 = 0
    For Each c As DataCol In e.DataTable.datacols
        If c.name Like "*第*" Then
            If e.datarow(c.name) = "出勤" Then
                count1 += 1
            ElseIf e.datarow(c.name) = "缺勤" Then
                count2 += 2
            End If
        End If
    Next
    e.DataRow("第九列") = count1
    e.DataRow("第十列") = count2
End If