Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 用二维表格进行VBA查找_Arrays_Vba_Matrix_Lookup - Fatal编程技术网

Arrays 用二维表格进行VBA查找

Arrays 用二维表格进行VBA查找,arrays,vba,matrix,lookup,Arrays,Vba,Matrix,Lookup,我有一张大的2D桌子。我希望用户从下拉菜单中选择两个类别,并让单元格返回相交值 实现这一点的最佳方式是什么?使用vlookup()、.index、.match() 谢谢。索引和匹配(分别)是最好的,就像您将匹配(即查找)放在自己的单元格中一样,如果您想查找其他列,您可以再次使用它。以下是我的操作方法: 设置一些测试数据: 1 2 3 4 A the quick brown fox B jumped over

我有一张大的2D桌子。我希望用户从下拉菜单中选择两个类别,并让单元格返回相交值

实现这一点的最佳方式是什么?使用vlookup()、.index、.match()


谢谢。

索引和匹配(分别)是最好的,就像您将匹配(即查找)放在自己的单元格中一样,如果您想查找其他列,您可以再次使用它。

以下是我的操作方法:

设置一些测试数据:

      1       2        3        4
  A  the      quick    brown    fox
  B  jumped   over     the      lazy
  C  dog      and      landed   on
  D  the      large    grazing  cow
然后在单元格B7中,我将数据验证设置为List:
=$A$2:$A$5
(这允许我们选择A-D) 单元格B8,要列出的数据验证:
=$B$1:$E$1
(这允许我们选择1-4)

现在,如果需要,您只需通过MATCH将第二个选项转换为数字,然后执行VLOOKUP:

=VLOOKUP($B$7,$A$2:$E$5,$B$8+1,FALSE)

vlookup+匹配:)怎么样?它的功效很强,并且可以产生一个相当小的配方,如果你整天都在使用配方奶粉的话,可以省去一些头痛。我想你有一些类似我下面的东西(感谢数据集同上!),其中A2和B2是你的下拉选择

以下是公式:

=VLOOKUP(myRow,myTable,MATCH(myCol,myColRng,0),0)
因此,您可以基于匹配查找返回数字,而不是为vlookup的列索引参数使用静态数字。因此,列和行都是可搜索的

我用命名范围使它看起来很可爱,您可能更喜欢这样做:

您的两个下拉列表:

myCol=A2 myRow=B2

表和列范围:


myTable=A4:D7 MyColrn=A4:D4是的,这是最好的方法。