问,有规律生成新代码,北京1 上海2 天津3,
excel吧
全部回复
仅看楼主
level 8
nanlaihe 楼主
A列200行数据,都是地名,有重复,如最后示意。想在B列产生代码,规律是,北京 1 上海2 天津3 .......... 湖北9,大约八九个条件。超过7个,不能使用if了,呵呵,也不想用查找替换。
想着好像见过类似这个函数的=LOOKUP(A1,{"","北京","上海";"","1","2"})可惜自己没弄成,有别的什么好办法吗?
————————————————
北京1
上海2
天津3
河北
河南
湖北9
湖南
上海2
天津3
浙江
四川
安徽
北京1
陕西
山西
海南
上海2
天津3
湖北9
湖南
山东

2009年04月22日 14点04分 1
level 8
nanlaihe 楼主
重新再表达一次,有人说我没讲清楚!最终我要的结果是这样的
A列 B 列
北京1
天津3
河北4
湖南6
安徽7
四川8
湖北9
河北4
河南5
湖南6
上海2
四川8
湖北9
四川8
湖北9
四川8
湖北9
四川8
上海2
天津3
河北4
河南5
安徽7
————————————————————
A列200行数据,都是地名,有重复,想在B列产生代码,规律是,北京1,上海2,天津3,河北4,河南5,湖南6,安徽7,四川8,湖北9
九个条件。超过7个,不能使用if了,呵呵,也不想用查找替换。 
想着好像见过类似这个函数的=LOOKUP(A1,{"","北京","上海";"","1","2"})可惜自己没弄成,好像是因为只对第一个字进行检查似的。湖北湖南的,分不开。
请问大家,有别的什么好办法吗?
2009年04月22日 14点04分 2
吧务
level 14
谢谢行天2000!
我跟着学习,并把公式写完整了.呵呵!
B1=SUM((A1={"北京";"上海";"天津";"河北";"河南";"湖南";"安徽";"四川";"湖北"})*{1;2;3;4;5;6;7;8;9})
2009年04月22日 15点04分 4
吧务
level 14
呵呵!
楼主hi那儿已经是离线留言了,而我还是在线交谈。
跟着楼主学了一招,不该谢吗?
哈哈!
2009年04月22日 15点04分 6
level 0
3楼的方法很好,谢谢!而且如果A列出现了不在公式中的名称时,公式会返回0.
楼主要用LOOKUP的话,得将所有名称按升序排列输入公式中,而且A列出现的名称不能超出公式所列的名称,否则会返回它接近的别的名称.
2009年04月22日 15点04分 7
吧务
level 15
Hlookup精确查找时不需要对数据排序。
=if(a1="","",hlookup(a1,{"北京","上海";"1","2"},2,))
2009年04月23日 00点04分 8
level 9
=MATCH(A1,{"北京";"上海";"天津";"河北";"河南";"湖南";"安徽";"四川";"湖北"},)
2009年04月23日 00点04分 9
level 8
nanlaihe 楼主
3楼的方法很好,谢谢!而且如果A列出现了不在公式中的名称时,公式会返回0. 
同感,学习!谢谢大家!谢谢行天!
呵呵,行天给出的是数组是 ; 应该没有特定要求吧。
谢谢雪儿,我把公式写成这样,似乎看起来更习惯。
=SUM((A1={"北京","上海","天津","河北","河南","湖南","安徽","四川","湖北"})*{1,2,3,4,5,6,7,8,9})
同时咬文嚼字一翻,便于自己和后来者学习。
————————————————————————
A1={"北京","上海","天津","河北","河南","湖南","安徽","四川","湖北"})
假设A1内是“四川”,检查它是否包含在后面数组中,返回结果是{false,false,false,false,false,false,false,true,false}
其实就是
{0,0,0,0,0,0,0,1,0}
然后再和下面的数字相*
{1,2,3,4,5,6,7,8,9}
得到
{0,0,0,0,0,0,0,8,0}
最后用sum()加起来
结果为8
2009年04月23日 00点04分 10
1