excel表格如何一个条件匹配多个结果?
原表有超过3000行数据。 展开
1、电脑打开Excel表格。
2、打开Excel表格后,按Alt+F11,调出VBA窗口,然后点击插入。
3、点击插入后,选中插入模块。
4、插入模块后,复制代码
Function abc(a As Range, b As Range, c As String)
Dim t As String
'如果a与b的区域大小不同,就显示“错误”
If a.Rows.Count <> b.Rows.Count Then abc = "错误": Exit Function
'在区域a是循环
For i = 1 To a.Rows.Count
'如果在a中找到与c相同的值,就把同一行中的b的内容提取出来,存入变量t中。
If a.Cells(i, 1) = c Then t = t & " " & b.Cells(i, 1)
Next
'将变量的值赋给自定义函数
abc = t
End Function
复制代码粘贴。
5、粘贴代码后,返回表格中输入公式=abc($A$1:$A$9,$B$1:$B$9,A1)。
6、输入公式后,回车就可以匹配多个结果了。
1.在原始数据中A列有多个“张三丰”,需要提取每个“张三丰”对应的“工号”。
2.一般情况的VLOOKUP只能返回第一个值,如下:
=VLOOKUP(A8,A1:D5,2,0)
3.在【姓名】列前插入一列,如下图输入公式:
=COUNTIF(B$2:B2,B2)
这个公式返回每个“姓名”从上到下是第几次出现,如第二个“张三丰”标记2。
4.将A2公式改成:
=B2&COUNTIF(B$2:B2,B2)
这样就将B列的“姓名”和出现次数连在一起。
5.在B8输入公式:
=A8&ROW(A1)
将A8值和ROW(A1)返回的1连在一起,下拉ROW(A1)会变成ROW(A2)返回2。
6.将B8的公式修改成如下:
=VLOOKUP(A$8&ROW(A1),A$1:E$5,3,0)
也就是在A1:E5范围内查询“张三丰”和出现次数的文本对应第3列的【工号】。
7.将公式下拉,就将所有“张三丰”对应的信息查询出来了。