如何通过匹配多个列和行从单元格范围中获取单个值

时间:2014-04-30 10:33:42

标签: google-sheets

我正在努力解决这个问题。

这是来自'sheet1'的数据:

  ||  A       B       C       D       E
=========================================
1 ||  C1      C2      X1      X2      X3
.........................................
2 ||  a       b       1       2       3
3 ||  a       d       10      11      12
4 ||  c       d       4       5       6
5 ||  c       f       13      14      15
6 ||  e       f       7       8       9
7 ||  e       b       16      17      18

这是“sheet2”中的数据:

  ||  A       B       C       D  
=================================
1 ||  C1      C2      C3  |   val
.................................
2 ||  a       d       X2  |   ?
3 ||  c       f       X1  |   ?
4 ||  e       b       X3  |   ?

请注意,sheet2中的列C实际上具有与sheet1中的用户列名相等的值。

我只想将sheet2中的A,B和C与sheet1中的A,B和1进行匹配,以查找最后一列中的值:

  ||  A       B       C       D  
=================================
1 ||  C1      C2      C3  |   val
.................................
2 ||  a       d       X2  |   11
3 ||  c       f       X1  |   13
4 ||  e       b       X3  |   18

我一直在玩OFFSET()和MATCH(),但似乎无法使用多个搜索条件锁定一个单元格。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

我会在sheet2 D2字段中使用此功能:

=指数(过滤器(Sheet 1中C:!E,工作表Sheet!A:A = A2,Sheet 1中B:!B = B2),如图1所示,匹配(C2,工作表Sheet $ C $ 1:$ E $ 1,0))

说明:

有一个FILTER函数会产生符合这两个条件的行的X1,X2,X3值(sheet1的C,D,E列):

  1. C1是“a”
  2. C2为“d”
  3. 所以它会返回一个数组:[10,11,12] - 这是相应行中sheet1的X1,X2,X3(C,D,E)列的值。

    然后,INDEX函数将获取此数组。现在我们只需要确定要选择哪个值。 MATCH函数将执行此计算,因为它试图在sheet1的标题行中找到第三个条件C3(在这种情况下为“X2”)。在此示例中,当X2处于第2位置时,它将返回“2” of sheet1!c1:e1

    因此INDEX函数将返回该数组的第二个元素:[10,11,12],即11,即期望值。

    希望这有帮助。