excel公式提取不规则字段

如题所述

我们只需要在单元格C2中输入公式:=mid (a2,min (find (row ($1: $10)-1,a2' 0123456789 '),11)
公式输入后,按Ctrl Shift和enter尝试,这个公式就变成数组公式了。
功能解释:
1.行($23360 $14)将获得{ 1;2;3;4;5;6;7;8;9;10},10个数,减1得到{ 0;1;2;3;4;5;6;7;8;9},也就是阿拉伯数字的0-9而已。a2“0123456789”是林明宇156958498650123456789”
2.Find (Row ($1: $10)-1,A2' 0123456789 ')是指在“林明宇156958498650123456789”中,分别找到0-9这十个数字的位置。
3.因为位置序号最小的数字(即从0到9的位置序号为0)是数字字段开头的第一个字符。所以我们用MIN函数来确定数字在字符串中的最小位置,也就是数字开始的位置,作为MID函数的第二个参数。最后通过MID函数提取11位数字,这是需要的电话号码。
当你能理解上述原理时,你可以在原公式的基础上简化公式:
=MID(A2,MIN(FIND(ROW($1:$10)-1,A25/19)),11)
从上图可以看出,A2后面这次没有接“0123456789”这个数字,而是更简单的5/19。其实原理同上,5/19=0.2631578947。这个结果只是包含了数字0-9,和上面的直连0-9是一样的。
通过上一步,我们可以提取完整的电话号码。接下来,我们只需要使用替换功能将提取的电话号码替换为数据区中的空电话号码。
相关问答:EXCEL单元格内不规则字符串对应提取求和引用位置改为:IF(ISNUMBER(FIND(→,D8)),SUM(OFFSET(EVALUATE(GSUBSTITUTE(D8,→,:G)),7,)),SUM(OFFSET(G$7,EVALUATE({D8}),)))但”1,2,4→6,8,9→11“实现不了。看看别的网友能否帮你?
温馨提示:答案为网友推荐,仅供参考