Foxtable(狐表)用户栏目专家坐堂 → 如何计算单元格相同字符的数量


  共有2823人关注过本帖树形打印复制链接

主题:如何计算单元格相同字符的数量

帅哥哟,离线,有人找我吗?
lismn456
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:141 威望:0 精华:0 注册:2015/8/20 16:02:00
如何计算单元格相同字符的数量  发帖心情 Post By:2015/8/20 16:16:00 [只看该作者]

各位朋友,谁知道如何计算每行单元格相同字符的个数?

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/20 16:21:00 [只看该作者]

 举例说明,最好上传foxtable项目。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:141 威望:0 精华:0 注册:2015/8/20 16:02:00
  发帖心情 Post By:2015/8/20 16:29:00 [只看该作者]

我做了一个考勤表格,从1号到月底怎么统计每个人的出勤,缺勤,请假等在相应的列中自动计算出数值                               

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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


 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:107440 积分:546479 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2015/8/20 16:38:00 [只看该作者]

先按名字分组,再按名字去统计吧,把日期作为查询条件

 回到顶部
帅哥哟,离线,有人找我吗?
lismn456
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:10 积分:141 威望:0 精华:0 注册:2015/8/20 16:02:00
  发帖心情 Post By:2015/8/20 16:48:00 [只看该作者]

我原来是用excel做的,但是导入foxtable后,计算公式就不能用了,不知道如何在foxtable中输入像Excel表格中“=COUNTIF(E10:K10,"√")”指令的效果

 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/20 16:53:00 [只看该作者]

 如果用表达式,就这样写

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/8/20 16:54:00 [只看该作者]

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


 回到顶部
帅哥哟,离线,有人找我吗?
大红袍
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By: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


 回到顶部
总数 12 1 2 下一页