关于excel判定的问题

来源:百度知道 编辑:UC知道 时间:2024/05/30 06:24:45
数据源为一串9位的数字,在E列中体现
判定规则如下:以E3为例
前3位数字为 400=DY 900=SY 510=SY 560=SY 310=DYPT 300=DYPT
850=NP 800=SP 700=PT
这些值返回在G3格中
另外还有一组判定规则:也是用前3位数字
(400 900 510 560 310 300)=CC
(850 800 700)=RDC
返回的值返回在H3中
二楼的,我不想要再复制出新单元格了
不然我直接用LEFT函数就搞定了
我的是宏运算出来的,其他位置还有数据的

先在另一个新的工作表中建立数据规则对应表,
这样就算以后有新规则或者有新的对应数据,只要直接更改数据规则对应表就行了。
如在Sheet2中,规则1是A列对应B列;规则2是C列对应D列。
如下例子:
A列 B列 C列 D列

400 DY 400 CC
900 SY 900 CC
510 SY 510 CC
560 SY 560 CC
310 DYPT 310 CC
300 DYPT 300 CC
850 NP 850 RDC
800 SP 800 RDC
700 PT 700 RDC

然后,在你的数据源所在工作表中,
在需要返回答案的G3单元格中输入以下公式:
=vlookup(left(E3,3),Sheet2!A:B,2,0)

在需要返回答案的H3单元格中输入以下公式:
=vlookup(left(E3,3),Sheet2!C:D,2,0)

注意:公式中的Sheet2就是你新建的数据规则所在的工作表。

要写很长一个公式,你也不给 点分!
i3=mid(e3,1,3)
g3=if(i3=400,"DY",if(find(i3,"900510560",1),"sy",if(find(i3,"310300",1),"DYPT",if(i3=850,"NP",if(i3=800,"sp",if(i3=700,"pt",""))))))
h3=if(find(i3,"400900510560310300",1),"CC",if(find(i3,"850800700",1),"RDC",""))

哈哈...楼上的真有意思