快生活 - 生活常识大全

一对多查询几行代码代


  一起来学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
  当然,如果数据较多,也可使用定义数组的方法。
  如下图(横屏幕查看,效果更好):
  结果如下:
  ----------------------------
  如有帮助,请点亮"在看"哦
网站目录投稿:又香