ExcelTip.Net留存知识帖 ---【注:附件之前被网盘供应商清空后,现已修复-现已修复-现已修复为本地下载!】
现在位置:首页 > E问E答 > 综合应用 > 如何查询第N个匹配的值?

如何查询第N个匹配的值?

作者:绿色风 分类: 时间:2022-08-18 浏览:135
楼主
amulee
Q:如何查询第N个匹配的值?
A:如附件,要查询第二、三个匹配的值,如何做呢?

 
方法一:函数公式法,数组公式,下拉
  1. =INDEX(B:B,SMALL(IF(A$1:A$9=A$12,ROW($1:$9),4^8),ROW(1:1)))&""
方法二:自定义函数法,按Alt+F11,插入一个模块,输入以下代码:
  1. Public Function MyVlookup(Lookup_value As String, Table_Array As Range, Col_Index_Num As Integer, K As Integer)
  2. If K <= 0 Or Col_Index_Num <= 0 Then
  3. MyVlookup = "#REF!"
  4. Exit Function
  5. End If
  6. Dim i&, j&
  7. Dim Arr
  8. Arr = WorksheetFunction.Index(Table_Array, 0, 1)
  9. For j = 1 To UBound(Arr)
  10. If Arr(j, 1) = Lookup_value Then
  11. i = i + 1
  12. If i = K Then
  13. MyVlookup = WorksheetFunction.Index(Table_Array, j, Col_Index_Num)
  14. Exit Function
  15. End If
  16. End If
  17. Next
  18. If i = 0 Or K > i Then
  19. MyVlookup = ""
  20. End If
  21. End Function
调用时候输入以下公式,前三个参数与Vlookup参数一致,最后一个参数为查询第几个值。
  1. =myvlookup(A$12,A$1:B$9,2,ROW(A1))

查询第N个匹配的值.rar
2楼
滴水穿石
跟着学习函数思路~
3楼
海洋之星
这个学习一下,哈哈

免责声明

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

评论列表
sitemap