以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]表达式错误  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=133043)

--  作者:hanzhang98
--  发布时间:2019/4/4 17:31:00
--  [求助]表达式错误
老师好。下面的表达式错误,请老师帮助。谢谢

1、IIF(AND(OR([病伤婚产类型]=\'病假\',[病伤婚产类型]=\'工伤\',[病伤婚产类型]=\'婚假\',[病伤婚产类型]=\'产假\',[病伤婚产类型]=\'探亲假\',[病伤婚产类型]=\'长病休\'),[病伤婚产计资方式]=\'按月\'),[岗位工资]*[病伤婚产计资比例],[日资]*[病伤婚产天数]*[病伤婚产计资比例]))

表达式为:如果[病伤婚产类型]=‘病假、工伤、婚假、产假、探亲假、长病休’,并且[病伤婚产计资方式]=\'按月\'的,其工资额就为[岗位工资]*[病伤婚产计资比例],否则其工资额就为[日资]*[病伤婚产天数]*[病伤婚产计资比例]


2、IIF([病伤婚产类型]=\'病假\',LOOKUP([连续工龄],{0;2;4;6;8},{6;7;8;9;10}/10),IIF(OR([病伤婚产类型]={\'工伤\',\'婚假\',\'产假\',\'探亲假\'}),1,IIF([病伤婚产类型]=\'长病休\',0.6,0)))

表达式为:[病伤婚产比例]=(如果[病伤婚产类型]=“病假”,([连续工龄]不足2年的比例60%、满2不满4的比例70%、满4不满6的比例80%、满6不满7的比例90%、满8的比例100%,如果(或者([病伤婚产类型]={"工伤","婚假","产假","探亲假"}),比例100%,如果([病伤婚产类型]="长病休",比例60%)))

提示“表达式错误”。请老师帮助指导。
[此贴子已经被作者于2019/4/4 17:35:50编辑过]

--  作者:hanzhang98
--  发布时间:2019/4/4 17:57:00
--  
老师好。上面的第一个表达式弄好了,是这样的【IIF(([病伤婚产类型]=\'病假\' OR [病伤婚产类型]=\'工伤\' OR [病伤婚产类型]=\'婚假\' OR [病伤婚产类型]=\'产假\' OR [病伤婚产类型]=\'探亲假\' OR [病伤婚产类型]=\'长病休\') AND [病伤婚产计资方式]=\'按月\',[岗位工资]*[病伤婚产计资比例],[日资]*[病伤婚产天数]*[病伤婚产计资比例])】

第二个的确实难,请老师帮助指导。



--  作者:有点甜
--  发布时间:2019/4/4 18:10:00
--  

公式1

 

iif(连续工龄<2, 0.6, iif(连续工龄<4, 0.7, iif(连续工龄<6, 0.8, iif(连续工龄<7, 0.9, 1))))

 

公式2

 

iif(病伤婚产类型=\'病假\', 公式1, iif(病伤婚产类型=\'长病休\', 0.6, 1))


--  作者:hanzhang98
--  发布时间:2019/4/4 18:38:00
--  
谢谢老师。按您的指导,表达式在[病伤婚产类型]为空时,比例全是100%。我的表达式如下:

IIF([病伤婚产类型]=\'病假\', IIF([连续工龄]<2, 0.6, IIF([连续工龄]<4, 0.7, IIF([连续工龄]<6, 0.8, IIF([连续工龄]<8, 0.9, 1)))), IIF([病伤婚产类型]=\'长病休\', 0.6, 1))

但正确的应该是在[病伤婚产类型]为空时,也为空(不能是0%)。还请老师费心指导。谢谢。
[此贴子已经被作者于2019/4/4 19:47:23编辑过]

--  作者:hanzhang98
--  发布时间:2019/4/4 19:26:00
--  
请老师给费心看看。谢谢。
--  作者:有点蓝
--  发布时间:2019/4/6 8:22:00
--  
IIF([病伤婚产类型] is null,null,IIF([病伤婚产类型]=\'病假\', IIF([连续工龄]<2, 0.6, IIF([连续工龄]<4, 0.7, IIF([连续工龄]<6, 0.8, IIF([连续工龄]<8, 0.9, 1)))), IIF([病伤婚产类型]=\'长病休\', 0.6, 1)))