以文本方式查看主题

-  易表在线答疑  (http://egrid2000.com/dvbbs/index.asp)
--  用户社区  (http://egrid2000.com/dvbbs/list.asp?boardid=2)
----  公式问题  (http://egrid2000.com/dvbbs/dispbbs.asp?boardid=2&id=27476)

--  作者:c2716633
--  发布时间:2014/9/29 16:02:00
--  公式问题
if([进货价]<> 0 and [系列号]=A,([进货价]+2),
if([进货价]<> 0 and [系列号]=B,([进货价]+2),
if([进货价]<> 0 and [系列号]=C,([进货价]+2),
if([进货价]<> 0 and [系列号]=D,([进货价]+2),
if([进货价]<> 0 and [系列号]=E,([进货价]+3),
if([进货价]<> 0 and [系列号]=F,([进货价]+3),
if([进货价]<> 0 and [系列号]=G,([进货价]+3),
if([进货价]<> 0 and [系列号]=H,([进货价]+3),
""))))))))


有简化的方法吗?
[此贴子已经被作者于2014-9-29 16:26:46编辑过]

--  作者:c2716633
--  发布时间:2014/9/29 16:14:00
--  引用图片问题
字母那应该是有 “”  的


应该是:

if([进货价]<> 0 and [系列号]="A",([进货价]+2),
if([进货价]<> 0 and [系列号]="B",([进货价]+2),
if([进货价]<> 0 and [系列号]="C",([进货价]+2),
if([进货价]<> 0 and [系列号]="D",([进货价]+2),
if([进货价]<> 0 and [系列号]="E",([进货价]+3),
if([进货价]<> 0 and [系列号]="F",([进货价]+3),
if([进货价]<> 0 and [系列号]="G",([进货价]+3),
if([进货价]<> 0 and [系列号]="H",([进货价]+3),
""))))))))


--  作者:dancedy
--  发布时间:2014/9/29 16:28:00
--  
Eval("if([进货价]<> 0 and [系列号]=""" + Substitute("A|B|C|D","|",""",([进货价]+2),if([进货价]<> 0 and [系列号]=""") + """,([进货价]+2),if([进货价]<> 0 and [系列号]=""" + Substitute("E|F|G|H","|",""",([进货价]+3),if([进货价]<> 0 and [系列号]=""") + """,([进货价]+3),""""))))))))")
--  作者:dancedy
--  发布时间:2014/9/29 16:44:00
--  

也可以这样:

if([进货价]<>0,if([系列号]="A" Or [系列号]="B" Or [系列号]="C" Or [系列号]="D",[进货价]+2,if([系列号]="E" Or [系列号]="F" Or [系列号]="G" Or [系列号]="H",[进货价]+3,"")),"")

用Eval函数:

Eval("if([进货价]<>0,if([系列号]=""" + Substitute("A|B|C|D","|",""" Or [系列号]=""") + """,[进货价]+2,if([系列号]=""" + Substitute("E|F|G|H","|",""" Or [系列号]=""") + """,[进货价]+3,"""")),"""")")


--  作者:dancedy
--  发布时间:2014/9/29 16:51:00
--  

不用Eval函数,这样也行:

if([进货价]<>0,if(instr([系列号],"ABCD") >= 0,[进货价]+2,if(instr([系列号],"EFGH") >= 0,[进货价] + 3,"")),"")


--  作者:c2716633
--  发布时间:2014/9/30 9:17:00
--  公式问题
多谢版主的连续思考啊!!!!图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看