吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 4253|回复: 6
收起左侧

[其他转载] 【笔记】excelVBA一对多查询自定义函数

  [复制链接]
bowangbuqi 发表于 2019-5-5 20:25
相信对大家来说,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函数


MLOOKUP来了,一对多查询,你值得拥有:
[Visual Basic] 纯文本查看 复制代码
//代替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类似;



来吧,各位老大,愿意的话给一个热心值吧!!!!

免费评分

参与人数 2吾爱币 +2 热心值 +2 收起 理由
lyqjqly + 1 + 1 我很赞同!
Dmail + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

木丁哂 发表于 2019-5-5 21:11
不是很懂
lizhipei78 发表于 2019-5-5 21:15
头像被屏蔽
killer05 发表于 2019-5-5 21:24
头像被屏蔽
pz5 发表于 2019-5-5 21:34
提示: 作者被禁止或删除 内容自动屏蔽
52pojie08 发表于 2019-5-5 21:50
多谢分享好方法,就是需要调用vba来实现,excel变成高手离不开学习下vba啊。
superlaomao 发表于 2019-5-6 08:59
在一系列公式区域里面查找特定值,可以做到吗?比如每个单元格等于其行号和列号的乘积,这个乘积是公式,那么在其中查找乘积后两位数是“53”(这个数是随便说的)的单元格,这个可以实现否?
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-16 07:45

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表