sql server一对多怎么查询_Excel | VBA(6)——一对多查询,几行代码代替复杂公式

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

4f63c4872e57e21f072ce16165efa221.png

问题情境

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当然,如果数据较多,也可使用定义数组的方法。如下图(横屏幕查看,效果更好):

4ce8476ca9f531bb3b5a94e4330b0ef4.png

结果如下:

33bcf6fce3a928e58df760a6397381a4.gif

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

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值