ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > Excel VBA > 如何制作不需要限定位置的查询函数?

如何制作不需要限定位置的查询函数?

作者:绿色风 分类: 时间:2022-08-17 浏览:126
楼主
chrisfang
Q:如何制作不需要限定位置的查询函数?
A:Vlookup函数和Hlookup函数在进行查询时,必须以Table_array的首行或首列作为查询对象所在的基准位,当数据表中存在多个列标题或行标题时,使用上述两个函数进行查询就不太方便。要制作没有限定查询位置的自定义函数,可参考如下代码:
  1. Function xlookup(lookupvalue, table_array As Range, Optional index = 1, Optional opt = 0)
  2. For Each i In table_array
  3. If i.Value = lookupvalue Then
  4.   If opt = 1 Then
  5.   xlookup = i.Offset(index, 0).Value
  6.   Else
  7.   xlookup = i.Offset(0, index).Value
  8.   End If
  9. End If
  10. Next
  11. End Function
效果图:

 

说明:
函数第一参数为查询目标,
第二参数为目标区域,
第三参数为查询结果的列偏移或行偏移,默认为1(即向右或向下偏移一个单元格),可省略。
第四参数为查询方式,默认为0,表示纵向查询(与Vlookup函数方式相同),参数为1时表示横向查询(与Hlookup函数方式相同),可省略。

自定义函数_任意位置查询.rar
2楼
海洋之星
学习了

免责声明

有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素, 经与ExcelTip.Net站长Apolloh商议并征得其同意, 现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示, 供有需要的人士查询使用,也慰缅曾经的论坛时代。 所示各个帖子的原作者如对版权有异议, 可与本人沟通提出,或于本站点留言,我们会尽快处理。 在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一

评论列表
sitemap