易表在线答疑技术与交流用户社区 → [求助]l逻辑刷新公式


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

主题:[求助]l逻辑刷新公式

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


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
[求助]l逻辑刷新公式  发帖心情 Post By:2012/10/25 14:17:00 [只看该作者]

 

文件中1”[合作人数][合作编号]的录入规则如下:

1、该项工作为一人独立完成时,[合作人数][合作编号]均为""

2、该项工作为2人及以上时,比如3人,则在为首[姓名]行的[合作人数]中输入3,并在其[合作编号]中赋予一个编号;

3、合作工作中的其他人,则只在[合作编号]中输入与同一项工作中[合作人数]不为""的人相同的编号;

4、综合23条,在一项有多人合作的工作中,有几人合作就有几条记录,而且,[合作人数]的记录应且只有一条,相同[合作编号]的记录必须,且只能等于[合作人数]

5、当表中发生与第4条不符情形时,该项合作工作的所有记录均被视为问题编号,并在[问题编号]列中勾选。

请教[问题编号]的刷新公式如何编写。

 

我用下面的公式不全对。

IF([合作编号] <> "" And CountFor(GridName,"合作编号", "=" ,[合作编号]) - CountFor(GridName,"合作人数", "=" ,0,"合作编号", "=" ,[合作编号]) <> 1, - 1,0)

不知 CountFor(GridName,"合作编号", "=" ,[合作编号]) (表示该项工作应有的记录总条数)

CountFor(GridName,"合作人数", "=" ,0,"合作编号", "=" ,[合作编号]) (表示不要输入[合作人数]记录的条数)

是不是因为不存在[合作编号]的对应关系所致。

谢谢!

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:1234.egd


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


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
  发帖心情 Post By:2012/10/25 14:51:00 [只看该作者]

实际应用中,仅[合作人数]<>0的一行数据是完整的,其他[合作人数]=0的同一组记录,只按[合作人数]<>0的记录选出所需要的数据。

如计算工资时,在[合作人数]<>0的记录中,以该项工作总工资除以[合作人数],得到每人平分的工资,其他合作人的工资就可用findtxt(……,"合作人数","<>",0,"合作编号","=",[合作编号])来返回。

但如果编号出错,工资分配就跟着出错。所以录入员应该随时可以从成千上万条记录中很快地找出存在问题的编号,以及时纠正。


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


加好友 发短信
等级:蒙面侠 帖子:2494 积分:6748 威望:0 精华:0 注册:2011/3/30 12:48:00
  发帖心情 Post By:2012/10/25 15:36:00 [只看该作者]

IF([合作人数] <> 0 And [合作编号] <> "" And CountFor(GridName,"合作编号", "=" ,[合作编号])<>FindText(GridName,"合作人数","合作编号", "=" ,[合作编号]), - 1,IF([合作人数] <> 0 And [合作编号] <> "" And CountFor(GridName,"合作人数", "=" ,[合作人数],"合作编号", "=" ,[合作编号]) <> 1, - 1,IF([合作人数] = 0 And [合作编号] <> "" And CountFor(GridName,"合作人数", "<>" ,0,"合作编号", "=" ,[合作编号]) <> 1, - 1,IF([合作人数] = 0 And [合作编号] <> "",FindText(GridName,ColName,"合作人数", "<>" ,0,"合作编号", "=" ,[合作编号]),0))))

这样弄了下好像可以了。就是要把所有可能出现的状况都考虑进去,分类进行条件设置。


 回到顶部
美女呀,离线,留言给我吧!
dancedy
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:2721 积分:4555 威望:0 精华:0 注册:2011/5/12 17:20:00
  发帖心情 Post By:2012/10/25 17:43:00 [只看该作者]

If([合作人数] = 0 And [合作编号] = "",0,If(CountFor(GridName,"合作编号"," = ",[合作编号]) = Number(FindText(GridName,"合作人数","合作编号"," = ",[合作编号])) And Number(FindText(GridName,"合作人数","合作编号"," = ",[合作编号],2)) = 0,0, - 1))

 回到顶部