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、输入公式后,回车就可以匹配多个结果了。
在B2单元格输入公式:
=LOOKUP(1,0/((A2=K:K)*(D2=L:L)),M:M)
复制并下拉,即可得到K列等于A2、L列等于D2的右侧对应M列的数据了
是否这个意思,真不知道你要怎么匹配啊!!
或者,你要把目标效果呈上来,应该可以实现的!!
若按你评论说的图二就是效果,则公式为:
K2=TEXT(OFFSET($A$1,1+MOD(3+ROW(),5),),"e-m-d")
L2=OFFSET($A$1,1+MOD(3+ROW(),5),3)
复制并下拉公式,即可
---------------------------------------------------------
或者是在 K2 单元格输入一个公式:
=OFFSET($A$1,1+MOD(3+ROW(),5),3*COLUMN(A$1)-3)
复制并右拉至L2u单元格,再选择 K2:L2 单元格复制并下拉,即可…………
注意:最后的一个公式必须把K列设置为“日期格式”!!
利用Vlookup函数,查询部门中所有的人员名单。
首先,插入一列,建立辅助列,输入公式==B2COUNTIF($B$2:B2,B2)
下拉填充公式到合适位置,这里利用countif函数的计数功能,实现了将部门添加了一个依次递增的编号,这样,每个员工对应的部门就成了唯一的条件,可以利用Vlookup函数查询了。
在查询列,输入公式=IFERROR(VLOOKUP($F$2ROW(A1),A:C,3,0),"");首先利用row(A1)函数与原部门所在单元格组成一个部门序列,正好对应上述步骤中生成的部门编码,实现一对一查询,然后利用IFError函数,将查询不到的数据制定返回值为空(不确定有多少个人员)。
5
下拉填充公式,就将部门中的所有人员名单查询出来了,也就是实现了Vlookup函数的一对多查询。
本文转载自互联网,如有侵权,联系删除