求助-Excel数据匹配?

我见青山多妩媚 2018-04-24 05:03:53
Excel表格中:
①A列是一列手机号(不重复)。
②B列是另一列手机号(不重复)。
③A列与B列中的手机号不重复。
④A列与B列的数据行数不相同。例如假设A列有300行,B列有500行。

想在C列中取得的效果:
如果A列中的手机号后3位及以上(也就是包含后面4、5、6、7、8···位)与B列中对应的后几位相同,就在C列中返回与当前行中A列相匹配的B列的那个手机号。
例如A2中有手机号12345678900,在B列中(不知道在哪一行)有一个手机号尾号也是900,那么就在C2中返回B列那个尾号是900的全部11位手机号。如果没有能匹配上的,就在C列返回0或者空白或者放着出错不用管。
那么,在C列中应该怎么操作?一个公式能搞定的话,就粘个公式过来。需要辅助行,或者辅助表的,也请标清个1、2、3、4来。

我找了半天,也没找到怎么上传附件·····
不过题目应该解释的够详细了······
求大神救我!!!
...全文
943 1 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
shw014 2018-05-11
  • 打赏
  • 举报
回复
如果 您的excel支持宏 百度 EXCEl 2010 如何用公式查找返回多个值,并且返回的值放在同一个单元格里面 打开你的Excel文件,按“Alt+F11”打开VBA编辑窗口,然后在左侧空白处点击右键,“插入”,“模块”。右侧空白处粘贴下面的代码。关闭VBA窗口。 将例子 中的代码修改如下
Function HeBing(rng1 As Range, s As String, rng2 As Range, f As String) As String
Dim Arr1, Arr2
Dim r As Long
r = rng1.End(xlDown).Row - rng1.Row + 1
Arr1 = rng1.Resize(r, 1): Arr2 = rng2.Resize(r, 1)
Dim i As Long
For i = 1 To UBound(Arr1)
    If Right(Arr1(i, 1), 3) = Right(s, 3) Then
        If HeBing = "" Then HeBing = Arr2(i, 1) Else HeBing = HeBing & f & Arr2(i, 1)
    End If
Next
End Function
在C列填入公式假定是使第2行 =HeBing(B:B,A2,B:B,",") -------- 如果您只要找一个,或 您的 Excel 没有安装宏编辑器 你可以在 B列前插入一列 B2填入公式 =RIGHT(C2,3) 先计算目标的后三位,目标已移动到C列然后再D2填入公式 =VLOOKUP(RIGHT(A2,3),B:C,2,FALSE)

5,172

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 Office开发/ VBA
社区管理员
  • Office开发/ VBA社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧