以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  [求助]求公式?或者解决办法?  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=29288)

--  作者:郑颖
--  发布时间:2017/6/9 10:10:00
--  [求助]求公式?或者解决办法?

图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看
如何才能达到这个目的?请各位大侠帮忙!!!
[此贴子已经被作者于2017/6/9 11:44:34编辑过]

--  作者:郑颖
--  发布时间:2017/6/10 9:33:00
--  
首先感谢您的帮助,但这不是一个数据表,而是很多人的。你这个办法没有用的。第一、行顺利改变就行不通,第二、多人数行不通。
--  作者:whx_sd
--  发布时间:2017/6/13 8:59:00
--  
你好,你可以使用求一列最大值的函数实现,条件设置为日期小于当前行日期就行,因为工资都是上涨的,最大值就是你最近一次调整的。


对指定表的指定列求最大值,可以设置多个条件。

语法:
Maxfor(Grid,Col,CompareCol,CompareMode,CompareValue,......,StartRow,EndRow,Option)

Grid         对该表中的某一列求最大值,可以用表名表示,也可以用位置表示。
Col          对该列求最大值,可以用列名称表示,也可以用位置表示。
CompareCol   进行比较的列,可以用列名称表示,也可以用位置表示。
CompareMode  比较方式,包括=、>、<、>=、<=、<>、Like、Instr共8种比较方式。
CompareValue 比较值
StartRow     可选参数,指定开始计算的行。
EndRow       可选参数,指定结束计算的行。
Option       可选参数,如果设为1,则不统计隐藏行


--  作者:iyplx2425
--  发布时间:2017/6/13 16:03:00
--  
可以按某个人历次调整中时间最近的那个做为提取条件。
--  作者:lyang70
--  发布时间:2017/6/14 13:47:00
--  

楼主太懒了,都不整个附件上来!

 

思路:

1、通过表预处理公式先对表进行排序。

2、姓名列设置操作公式:如果改名字已存在(用FindRow),就在“调整前岗位工资”和“调整前薪级工资”列写入该员工最近一次的“调整后岗位工资”和“调整后薪级工资”(用SetCellText和FindText实现),否则都不动!


--  作者:郑颖
--  发布时间:2017/6/17 17:04:00
--  
首先还是得感谢大家帮助,但我看了所有人员提示所示范;但还是不能贯穿理解,融汇到实例中去。现将实例发出,请各位再次帮忙看看,看如何解决实例中的问题([原任职岗位等级],[任原职时间],[调整前工资情况_……]等,如何才能调用前一次的[现任职岗位等级],[任现职时间],[调整后工资情况_……]等,数据)。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络申报公式文件.egd

[此贴子已经被作者于2017/6/17 17:04:06编辑过]

--  作者:郑颖
--  发布时间:2017/6/18 1:34:00
--  

这是我自己写在公民身份号码列的操作公式请各位纠正:if(CountFor(GridName,"公民身份号码"," = ",[公民身份号码]) <=1, True ,SetCellText(GridName,Row,"调整前工资情况_岗位工资",FindText(GridName,"调整后工资情况_岗位工资","姓名"," = ",[姓名],"公民身份号码"," = ",[公民身份号码],CountFor(GridName,"公民身份号码"," = ",[公民身份号码]) - 1)))


--  作者:iyplx2425
--  发布时间:2017/6/20 13:21:00
--  

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