excel 我想根据手机号码应为10位数的条件,将包含移动的号码的两列合并为一列

kupeojn6  于 2023-01-10  发布在  其他
关注(0)|答案(3)|浏览(210)

我是新来的excel请帮助我。
所以现在的情况是我们两个人没有联系

contact no      contact no 1
9864573828       0145883
9834765849       1923832
018294           9876547834

我想把两列合并成一列,联系号码为10位。

contact no      
9864573828       
9834765849       
9876547834

我正在使用Excel 2013

wn9m85ua

wn9m85ua1#

在Excel 2013中,此公式可用于列出第一个和第二个范围中的10位数字,没有间隔:

=IFERROR(IFERROR(INDEX(A:A,AGGREGATE(15,6,ROW(A:A)/(LEN(A:A)=10)/(ISNUMBER(--A:A)),ROW(1:1))),INDEX(B:B,AGGREGATE(15,6,ROW(B:B)/(LEN(B:B)=10)/(ISNUMBER(--B:B)),ROW(1:1)-SUMPRODUCT((LEN(A:A)=10)*(ISNUMBER(--A:A)))))),"")

它使用大量的资源进行计算,因此不建议使用整列引用。因此,请使用实际的范围,如:

=IFERROR(
   IFERROR(
     INDEX(A:A,
           AGGREGATE(15,6,
                     ROW($A$2:$A$5)
                     /(LEN($A$2:$A$5)=10)
                     /(ISNUMBER(--$A$2:$A$5)),
                     ROW(1:1))),
     INDEX(B:B,
           AGGREGATE(15,6,
                     ROW($B$2:$B$5)
                     /(LEN($B$2:$B$5)=10)
                     /(ISNUMBER(--$B$2:$B$5)),
                     ROW(1:1)
                     -SUMPRODUCT(
                         (LEN($A$2:$A$5)=10)
                         *(ISNUMBER(--$A$2:$A$5)))))),
   "")

注:我认为(无法验证自己)公式需要用ctrl+shift+enter输入才能使其成为数组公式。

这个公式所做的是获取第一个范围的第一行,其中字符串长度为10,并且转换为数字的字符串不会产生错误(如果字符串中有文本字符,则会发生错误)。
当您向下拖动公式时,它会显示找到的第二个值、第三个值等,直到在第一个范围内找不到任何值为止。
在这种情况下,IFERROR使其在第二个范围内查找相同的逻辑。
因为我们希望它首先显示第一个找到的值,所以不能重置ROW(1:1) * -它用作第一个最小值、第二个最小值等的计数器。- * 因此我们使用相同的计数器,并使用SUMPRODUCT减去满足第一个范围条件的字符串总数,这样计数器将从第二个范围的1开始计数。
如果在第二个范围内没有找到更多的值,它将显示一个空白值。因此,您可以将公式向下拖动到第一个空白结果以显示每个结果。
它可能仍然是缓慢的实际范围引用。我强烈建议升级到Office 365。

gg0vcinb

gg0vcinb2#

试试下面的公式-

=LET(x,TOCOL(A2:B13,1),FILTER(x,LEN(x)=10))

hkmswyz6

hkmswyz63#

由于您的excel版本不支持TOCOL()和一些其他公式,您可以使用这个简单的解决方案:

=IF(LEN(A2)=10,A2,IF(LEN(B2)=10,B2,""))

将其放入C2并向下拖动id以获得结果:

由于您没有指定如果两列都有10位数字或者都没有,该怎么做,在这些情况下,它将返回前10位数字或空字符串。

相关问题