这段excel函数怎么理解?

=lookup(9e+307,--right(a1,column(a:j)))... =lookup(9e+307,--right(a1,column(a:j))) 展开
 我来答
ssfx1982
2022-09-08 · TA获得超过2241个赞
知道小有建树答主
回答量:945
采纳率:58%
帮助的人:190万
展开全部

从里到外,解释如下:

  1. column(a:j)返回的是A:J的列号,结果是数组{1,2,3,4,5,6,7,8,9,10}

  2. right(a1,column(a:j))按步骤1数组内容1到10的长度分别返回A1从右侧开始截取的字符串,得到的还是一个包含10个字符串的数组。假设A1的内容是“本阿1234567”,那么返回结果如下:{"7","67","567","4567","34567","234567","1234567","阿1234567","本阿1234567","本阿1234567"}。这里,数组中每个值都是用双引号括起来的,表明这些值的类型都是文本字符串,而不是真正能直接用来运算的数字,尤其是最后3个值中还包含汉字等非数字。

  3. --right() 外套个“--”符号是将第2步数组中的文本字符串强制转换成数字类型的数据,不是数字的返回错误值,得到结果如下:{7,67,567,4567,34567,234567,1234567,#VALUE!,#VALUE!,#VALUE!},这里最后3个都是错误值,因为步2的数组中最后3个值中包含非数字的内容

  4. =lookup(9e+307,--right()),这里的9e+307是一个极大的数字,等于9*10^307,大约是EXCEL能接受的最大数值。lookup函数返回第3步数组中小于等于查找值的最大值(即:数组中的最大值),并且忽略#VALUE!等错误值。返回结果是1234567

    由上可见,该函数的作用是分离单元格中的文本和数字,并提取出数字。

    注意事项:

    如果单元格中的数字最大长度超过10位,提取结果会出错,因column(a:j)返回的数组最大值只到10。比如提取11位的手机号就不行了。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式