【问题标题】:How to get a single value from a cell-range by matching multiple columns and rows如何通过匹配多列和多行从单元格范围中获取单个值
【发布时间】:2014-04-30 10:33:41
【问题描述】:

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

这是来自“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(),但似乎无法使用多个搜索条件锁定一个单元格。有人可以帮忙吗?

【问题讨论】:

    标签: google-sheets


    【解决方案1】:

    我会在 sheet2 D2 字段中使用这个函数:

    =index(过滤器(sheet1!C:E,sheet1!A:A=A2,sheet1!B:B=B2),1,match(C2,sheet1!$C$1:$E$1,0))

    解释:

    有一个 FILTER 函数将产生与这两个条件匹配的行的 X1、X2、X3 值(sheet1 的 C、D、E 列):

    1. C1 是“a”
    2. C2 是“d”

    所以它会返回一个数组:[10,11,12] - 这是相应行中 sheet1 的 X1、X2、X3 (C,D,E) 列的值。

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

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

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-02
      相关资源
      最近更新 更多