ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > 我的测验 > 函数与公式 > 【练习】根据集团网手机号段查找对应单位

【练习】根据集团网手机号段查找对应单位

作者:绿色风 分类: 时间:2022-08-18 浏览:173
楼主
gouweicao78
【题目】如图,一些单位的集团网都有手机号段(以下号码纯属虚构,如有雷同,纯属巧合),号段内部连续,但各个号段之间不连续且乱序排列,如何根据给定的号码查找对应的单位,如果没在任一号段内,则返回空文本。

【时限】2010年4月26日0:00截稿,请跟帖回复。

【要求】限函数与公式完成。根据答案情况予以评分,正确答案+2技能分,优秀答案最高可获+8技能分。


 
【练习】如何根据集团网手机号段查找对应单位.rar
2楼
chrisfang
  1. =OFFSET(B1,MAX(((C12-LEFT(C3:C10,11))*(C12-RIGHT(C3:C10,11))<=0)*ROW(2:9)),)&""
3楼
rongjun
数组公式:

  1. =INDEX(B:B,MIN(IF((LEFT(C3:C10,11)-C12)*(RIGHT(C3:C10,11)-C12)<=0,ROW(3:10),99)))&""
4楼
biaotiger1
1、2007
  1. =IFERROR(INDIRECT("B"&SUM((C12-LEFT(C3:C10,11)>=0)*(C12-RIGHT(C3:C10,11)<=0)*ROW(C3:C10))),"")
2、2003
  1. =OFFSET(B1,SUM((C12-LEFT(C3:C10,11)>=0)*(C12-RIGHT(C3:C10,11)<=0)*ROW(C2:C9)),)&""
5楼
monvzhilei

  1. 我就就答案抄来,写在这里算了。主要是参与一下,顺便让自己至少看得懂。
  2. =IF(ISNA(LOOKUP(1,0/((C12-RIGHT(C3:C10,11)<=0)*(C12-LEFT(C3:C10,11)>=0)),B3:B10)),"",LOOKUP(1,0/((C12-RIGHT(C3:C10,11)<=0)*(C12-LEFT(C3:C10,11)>=0)),B3:B10))
6楼
syz105729913
【练习】如何根据集团网手机号段查找对应单位.rar

参与一下
7楼
wjc2090742
因为手机号应该算是有规律的数字,所以就用数字比较处理了。因为实在想不出更好的办法避免重复写公式,就用vlookup取巧了。

本来想改成第二个公式的,但是不明白为什么公式1中的right的部分可以比较,公式2就一定要加--?

C13=SUBSTITUTE(VLOOKUP(SUMPRODUCT((LEFT($C$12,7)=LEFT($C$3:$C$10,7))*(RIGHT($C$12,4)>=MID($C$3:$C$10,8,4))*(RIGHT($C$12,4)<=RIGHT($C$3:$C$10,4))*$A$3:$A$10),IF({1,0},{0;1;2;3;4;5;6;7;8},$B$2:$B$10),2,0),"单位名称","")

C13=SUBSTITUTE(VLOOKUP(MAX((C12>--LEFT(C3:C10,11))*(C12<--RIGHT(C3:C10,11))*A3:A10),IF({1,0},ROW(1:9)-1,B2:B10),2),"单位名称","")
8楼
棉花糖
=INDEX(B:B,IF((C12-LEFT(C3:C10,11)>=0)*(RIGHT(C3,11)-C12>=0),ROW(3:10),99))&""
9楼
amulee
数组公式:
  1. =INDEX(B3:B11,MATCH(1,(C12&0>=LEFT(C3:C11,11)&0)*(C12&9<=RIGHT(C3:C11,11)&9),))&""
10楼
tntpai
=CHOOSE(SUM(((C12-LEFT(C3:C10,11))*(RIGHT(C3:C10,11)-C12)>=0)*ROW(1:8))+1,"",B3,B4,B5,B6,B7,B8,B9,B10)
11楼
wjc2090742
不好意思,我是菜鸟,想要问个基础的问题。
花时间学习了各位高手的公式,但是还是有些不明白的地方。

(C12-RIGHT(C3:C10,11))<=0是可以得到结果的,left(C3:C10,11)<right(C3:C10,11)这样的写法也是可以得到结果的,
但是C12<=right(C3:C10,11)这样的写法就是不对,一定要在right前面加--。是这样吗?这里面的运算规则是什么呢?
12楼
gouweicao78
c12是数值,right是文本。
根据排序规律,数值在文本之前,因此,可以用C12-RIGHT<0的方法比较
13楼
wjc2090742
right、left、mid等得到的是字符,是文本,即使是对数字进行操作。所以C12<right这样的比较是错误的,本例中会得到{False;False.........}全false的结果。所以要改成--right,或者right()*1。

但是C12-right却可以得到一串计算结果,left()-right()这样写也可以得到一串计算结果,left()<right()也可以得到相应的结果。

是不是可以这样理解:数字和字符是不同级别的,所以直接比较只会有一种结果,就是数字大于字符。

但是数字和字符(指对数字进行处理得到的)是可以运算的,比如+、-。

字符和字符,因为是同级的,是可以比较和运算的,相当于处理得到的数字直接进行比较或运算。

不知道有没有词不达意,理解的有些混乱。先谢谢楼主的耐心。
14楼
syz105729913
C12<right,这样的比较只能说是数值与文本之间的比较,不管那个文本的“值”是什么,文本都比数值大,
直接这样比应该是得出全TRUE的结果,而不是你说的全FALSE,--right,或者right()*1都是把文本型数值转换为数值的。
数字和字符是可以运算的,但只限于文本型数值,像“A1234”这样的文本就不能和数字运算了,文本型数值和数值运算就跟数值之间的运算规则是一样的,没有什么特别。
15楼
gouweicao78
逻辑值和数值及文本之间有什么样的关系 http://www.exceltip.net/thread-1152-1-1.html


-right,实际上就是Right得到的文本型的数字,参与四则运算之一(减运算)。
16楼
bbwsj
呵呵 别人的公式,换换思路
公式1(数组公式)
=INDIRECT("B"&SUM((C12-LEFT(C3:C10,11)>=0)*(C12-RIGHT(C3:C10,11)<=0)*ROW(C3:C10)))&""
公式2(普通公式)
=LOOKUP(1,0/((C12-RIGHT(C3:C10,11)<=0)*(C12-LEFT(C3:C10,11)>=0)),B3:B10)

可惜公式2没有消错,当电话号超出范围,就提示错误值,07的E倒很容易解决这个,03就只能改选项设置了
17楼
gouweicao78


两数相乘,一个非正、一个非负,那么结果肯定是非正(<=0)
所以不需要分别判断,而直接先相乘后判断。
18楼
w83365040371
  1. =INDEX(B:B,MIN(IF(MMULT(N(C12<MID(C3:C10,{1,13},11)+{0,1}),{1;1})=1,ROW(3:10),9^4)))&""

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap