【笔记】excelVBA一对多查询自定义函数
相信对大家来说,excel的一对一查询已经很熟悉了,那我们先回顾一下:VLOKUP函数:
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
参数 简单说明 数值类型
lookup value 查找值
table array 查找区域
col index num 查找区域第几列
range lookup 精确/模糊查找 0-精确匹配 1-模糊匹配
HLOOKUP函数与Vlookup函数的用法类似,这里不做详细介绍。更多内容,请查看链接:
VLOKUP函数
https://static.52pojie.cn/static/image/hrline/1.gif
MLOOKUP来了,一对多查询,你值得拥有:
//代替vlookup和hlookup的函数mlookup
Function MLookup(val, array1 As Range, array2 As Range, f As Byte) As String
'val 为要查找的值
'array1 要在其中查找的矩形区域,可单列(行) 或多行多列
'array2 是要返回相应值的与array1等大的矩形区域
'f 为0时精确查找,为1时模糊查找
Dim c As Range, FirstAddress As String
With array1
Set c = .Find(val, .Cells(.Count), xlValues, f + 1)
If Not c Is Nothing Then
FirstAddress = c.Address
Do
MLookup = MLookup & "," & array2.Cells(c.Row - .Row + 1, c.Column - .Column + 1).Text
Set c = .Find(val, c, xlValues, f + 1)
Loop Until c.Address = FirstAddress
End If
MLookup = Mid(MLookup, 2)
End With
End Function
这个函数的用法和vlookup类似;
{:1_899:}{:1_899:}{:1_899:}
https://static.52pojie.cn/static/image/hrline/2.gif
来吧,各位老大,愿意的话给一个热心值吧!!!! 不是很懂 这个网上不是一早就有了 多谢分享好方法,就是需要调用vba来实现,excel变成高手离不开学习下vba啊。 在一系列公式区域里面查找特定值,可以做到吗?比如每个单元格等于其行号和列号的乘积,这个乘积是公式,那么在其中查找乘积后两位数是“53”(这个数是随便说的)的单元格,这个可以实现否?
页:
[1]