Foxtable(狐表)用户栏目专家坐堂 → 请教如何设计这个表达式


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

主题:请教如何设计这个表达式

美女呀,离线,留言给我吧!
意悠心轻
  21楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/2 22:47:00 [只看该作者]

上面的图分配金额是没数字的,下面的图是我用excel分配后的结果,要求就是回帖里说的。

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


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

逻辑是什么啊,怎么计算啊

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  23楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/2 22:59:00 [只看该作者]

=IFERROR(IF(COUNT(FIND("旷工",I3)),0,IF($B3="",IF(ROW($B3)>MAX(IF($B$3:$B$1263<>"",ROW($B$3:$B$1263),""))+2,0,IF(ROW(B3)=MAX(IF($B$3:$B$1263<>"",ROW($B$3:$B$1263),0))+2,SUM($J$3:dw)/2,SUM($J$3:dw)-SUMIF($A$3:dw,$A3,J$3)*2)),IF(E3="个人",H3,(SUMIFS(H:H,A:A,A3,C:C,C3,E:E,E3)/IF(COUNTIF(E3,"集体*")*(COUNTIF(INDIRECT("b"&MATCH(A3&C3&E3,A$3:A$1263&C$3:C$1263&E$3:E$1263,)+2&":b"&ROW()),B3)=1),SUM((MATCH(A$3:A$1263&B$3:B$1263&C$3:C$1263&$E$3:$E$1263,A$3:A$1263&B$3:B$1263&C$3:C$1263&$E$3:$E$1263,)=ROW($1:$1261))*(A$3:A$1263=A3)*(C$3:C$1263=C3)*(E$3:E$1263=E3)),""))))),0)
数组公式:同时按shift+ctil+回车键
这是在excel里的计算公式,意思对不同集体的计件工资进行安该集体不重复人数分配,个人计件的直接算到个人,旷工的工资不显示,但其金额不分配给同集体其他人。
[此贴子已经被作者于2016/2/3 12:39:33编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  24楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/2 23:04:00 [只看该作者]

     我上面的公式包含了安每天自动小计,最后自动总计效果,在Foxtable 2016里可以不考虑这些,因为软件有分类统计功能。

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


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

做一个按钮,写入下代码即可一次性计算

 

Tables("冲压车间工资表").Sort = "日期,产品名称,生产形式,数量"
For Each ary() As String In DataTables("冲压车间工资表").GetValues("日期|产品名称|生产形式|数量")
    Dim drs As List(Of DataRow) = DataTables("冲压车间工资表").Select("日期='" & ary(0) & "' and 产品名称='" & ary(1) & "' and 生产形式='" & ary(2) & "' and 数量 = '" & ary(3) & "'")
    Dim sum As Double = 0
    Dim count As Integer = 0
    For Each dr As DataRow In drs
        Dim fdr As DataRow = DataTables("价格表").find("产品名称 = '" & dr("产品名称") & "' and 工序 = '" & dr("生产工序") & "'")
        If fdr IsNot Nothing
            dr("单价") = fdr("单价")
        End If
        sum += dr("数量") * dr("单价")
        count += 1
    Next
    For Each dr As DataRow In drs
        dr("分配金额") = sum / count
    Next
   
Next


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  26楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/2 23:16:00 [只看该作者]

还有一个条件,旷工呢?没考虑进去。
[此贴子已经被作者于2016/2/2 23:29:32编辑过]

 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  27楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/2 23:17:00 [只看该作者]

不用按钮行吗?我想让它们自动计算。
[此贴子已经被作者于2016/2/2 23:24:19编辑过]

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


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

以下是引用意悠心轻在2016/2/2 23:16:00的发言:
还有一个条件,旷工呢?没考虑进去。
[此贴子已经被作者于2016/2/2 23:29:32编辑过]

 

旷工的条件是什么啊?怎么判断啊?逻辑是什么说清楚啊。


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


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

以下是引用意悠心轻在2016/2/2 23:17:00的发言:
不用按钮行吗?我想让它们自动计算。
[此贴子已经被作者于2016/2/2 23:24:19编辑过]

 

没必要自动计算,自动计算会带慢系统的,还不如把数据输入完毕以后,一次性计算。


 回到顶部
美女呀,离线,留言给我吧!
意悠心轻
  30楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:512 积分:3358 威望:0 精华:0 注册:2016/1/31 16:04:00
  发帖心情 Post By:2016/2/3 12:30:00 [只看该作者]

     这样吧只要备注列有旷工字符,就算他上了半天班,集体生产中有分配金额,也不显示,但其金额不被其他人分配,这样应可以编,我原设想在生产形式中显示旷工,但无集体条件,属他的部分工资就无法参与计算,其份额被其他人分占,我们厂规规定,旷工二小时以上作半天,没半天工资,旷工半天以作一天,没当天工资。
[此贴子已经被作者于2016/2/3 12:36:09编辑过]

 回到顶部
总数 196 上一页 1 2 3 4 5 6 7 8 9 10 下一页 ..20