打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Excel | VBA(6)——一对多查询,几行代码代替复杂公式

一起来学office,提高办公技能

问题情境

Excel069 | VLOOKUP一对多查找:不连续相同内容对应的多个数据一次提取

Excel145 | INDEX+SMALL,一对多查找的又一犀利组合

以上两篇文章,朋友们熟悉吗?
经常读我公众文章的朋友一看就知道,那是两篇关于一对多查找 的文章。
两种方式,不管是VLOOKUP还是 INDEX+SMALL,都用到了构建新的数组,一是公式写起来比较麻烦,二是如果数据量过大,运行速度较慢。
今天,韩老师给几行代码,可以轻松解决以上问题。
VBA实现
代码如下(横屏幕查看,效果更好):
Sub xf()
    Dim i%, k%, irow%          '定义整形变量
    irow = Range("a1").CurrentRegion.Rows.Count   'irow为当前数据表数据行数
    k = 4                     '因为查询数据从F4单元格开始显示,所以K赋初值4
    Range("f4", "i" & irow).Clear   '清除显示区域数值,以备显示下一次查询结果
    For i = 2 To irow
        If Range("b" & i).Value = Range("g1").Value Then
            Range("f" & k) = k - 3
            Range("g" & k).Value = Range("b" & i).Value
            Range("h" & k).Value = Range("c" & i).Value
            Range("i" & k).Value = Range("d" & i).Value
            k = k + 1
        End If
     Next
End Sub
当然,如果数据较多,也可使用定义数组的方法。
如下图(横屏幕查看,效果更好):

结果如下:

----------------------------

如有帮助,请点亮“在看”哦

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
在Excel中怎么提取一列中最后填入单元格的数?
Excel VBA 8.39公式错值隐藏不满意 那就直接清空或单独标记
这样的VBA讲解
使用VBA从具有多行标题的数据源表中取数
使用VBA给单元编写公式
VBA简单入门02:对象的属性
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服