【发布时间】:2015-02-09 20:37:44
【问题描述】:
我有一张大的 2D 桌子。我希望用户从下拉菜单中选择 2 个类别,并让单元格返回相交值。
实现它的最佳方式是什么?使用 vlookup()、.index、.match()?
谢谢。
【问题讨论】:
-
是的,这是最好的方法。
我有一张大的 2D 桌子。我希望用户从下拉菜单中选择 2 个类别,并让单元格返回相交值。
实现它的最佳方式是什么?使用 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 中,我将数据验证设置为列表:=$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 + match 怎么样 :) ?它功能强大,并且产生了一个相当小的公式,如果您整天处理公式,可以省去一些麻烦。我想你有类似我下面的东西(感谢数据集同上!),其中 A2 和 B2 是你的下拉选择。
公式如下:
=VLOOKUP(myRow,myTable,MATCH(myCol,myColRng,0),0)
因此,您可以根据匹配查找返回数字,而不是为 vlookup 的列索引参数使用静态数字。因此,列和行都是可搜索的。
我用命名范围让它看起来很可爱,你可能更喜欢这样做:
您的两个下拉菜单:
myCol = A2 myRow = B2
表和列范围:
myTable = A4:D7 myColRng = A4:D4
【讨论】: