Excel 表查找,包含多列索引

Excel 表查找,包含多列索引

我在 Excel 中有一个表格,其外观大致如下:

Test1   100 test2   200
Test3   110 test4   210
Test5   120 test6   220

我想要一个函数,给定测试 1 作为输入,将返回 100,给定测试 2 将返回 200

LOOKUP、(V/H)LOOKUP 和 INDEX 都坚持索引列使用单个连续数组。

答案1

假设您想要返回的值始终是数字,我认为这会起作用:

=IFERROR(VLOOKUP(INPUTCELL,$A$1:$B$3,2,0),0)+IFERROR(VLOOKUP(INPUTCELL,$C$1:$D$3,2,0),0)

这只适用于 Excel 2007,但可以针对 2003 进行修改。可能有更有吸引力的方法,但这是我首先想到的。请注意,如果“测试 1”在两列中,则它将添加两个相应的值。


更新答案: 正如其他评论者所建议的那样,我会重新评估您的电子表格的布局。假设您无法更改它,我看到的唯一可扩展的解决方案是通过 VBA。我不是 VBA 专家,所以可能有更有效的方法来编写此解决方案,但这就是我得到的结果:

  1. 按 Alt+F11 打开 VBA 编辑器。
  2. 在 VBA 编辑器中单击插入>模块。
  3. 粘贴以下代码:
公共函数 GetValue(rngSearch 作为范围,rngInput 作为范围)作为变体
      暗淡单元格作为变体
      对于 rngSearch 中的每个单元格
        如果 cell.Value = rngInput.Value 则
          获取单元格值 = 单元格偏移量(0,1)
          退出
        万一
      下一个
 结束函数

4 为了使用该函数,请在所需单元格中输入“=GetValue(SearchRange, InputCell)”(不带引号),其中 InputCell 是显示“测试 1”、“测试 2”等的单元格,SearchRange 是您正在搜索的区域。

您需要启用宏才能使其工作。

答案2

如果您使用 IF() 函数,那么获得您所要求的内容就是一项简单的任务。

相关内容