请教Excel高手:我需要在一些地址中分出区域,现在用 IF+COUNT+FIND 处理但是if只能镶嵌6-7层,请帮忙处理

要求E2中包含 C2:C20中的一个值即在D2显示其对应B2:B20的值,如 A B C D E
包含 对应显示 求公式 地址
白云区 白云区 白云 广州市白云区
经济开发区 萝岗区 萝岗区 广州市经济开发区

第1个回答  2012-04-28
如果层数不够,可以用&符号连接起来就可以,要多少可用多少如
=if(iserror(find("白云区",e1)),"","白云区")&if(iserror(find("萝岗区",e1)),"","萝岗区")........追问

我现在用了6层已经很麻烦了,如果要这样就要几十层了,太复杂了。下面是我现在用的公式
例:=IF(COUNT(FIND("白云",R37)),"白云",IF(COUNT(FIND("番禺",R37)),"番禺",IF(COUNT(FIND("开发区",R37)),"开发区",IF(COUNT(FIND("黄埔",R37)),"黄埔",IF(COUNT(FIND("花都",R37)),"花都",IF(COUNT(FIND("天河",R37)),"天河",0))))))

追答

如果你的地址有规律就不用这样做了,不知道有规律没有,如某某市某某区,都是这样的格式吗?如果是就直接用mid
=mid(r37,find("市",r37)+1,find("区",r37)-find("市",r37))

追问

没有规律,而且有些地址显示我需要调整,如 “科学城” 要求显示 “萝岗区”;

本回答被提问者采纳
第2个回答  2012-04-29
你可以用wb编辑器中的模块来完成这个任务,应该不困难吧追问

我是菜鸟,可否说得明白点,谢谢!

追答

:=IF(COUNT(FIND("白云",R37)),"白云",IF(COUNT(FIND("番禺",R37)),"番禺",IF(COUNT(FIND("开发区",R37)),"开发区",IF(COUNT(FIND("黄埔",R37)),"黄埔",IF(COUNT(FIND("花都",R37)),"花都",IF(COUNT(FIND("天河",R37)),"天河",0))))))
从这个公式来看,如果要使用VB的话,很简单。如:
Function 区域(m)
If m = "哈尔滨市平房区" Then
区域 = "平房区"
ElseIf m = "吉林市朝阳区" Then
区域= "朝阳区"
ElseIf m = "吉林市百合区" Then
区域= "百合区"
.........
Else
区域 = ""
End If

End Function
如此模仿即可成功

追问

非常感谢,你的方法应该有用;可是我对VB一窍不通,只会用简单的公式套一下,简单的公式对我们这些菜鸟来说比较容易上手点。

追答

打开工具--宏--VB编辑器,把我给你的考进去,再补充完整即可

第3个回答  2012-04-28
我是百度新手,请采纳
相似回答
大家正在搜