【问题标题】:Retrieve row 1 of column that matches data of a row检索与行数据匹配的列的第 1 行
【发布时间】:2016-06-23 00:24:24
【问题描述】:

我正在处理两个表,我正在尝试从列中的第一行中提取数据,该列中的值与 A2 中的数据匹配。

示例表...

ID#s  RESULT
9
17
49
43
5
32
46
56
20
36
37

test1   test2   test3   test4   test5   test6   test7
  1       9       17      25      33      41      49
  2       10      18      26      34      42      50
  3       11      19      27      35      43      51
  4       12      20      28      36      44      52
  5       13      21      29      37      45      53
  6       14      22      30      38      46      54
  7       15      23      31      39      47      55
  8       16      24      32      40      48      56

所以基本上,这是两个不同的表。查看第一个表,我希望公式进入 B2 并在 A2 中找到值(在本例中为数字 9),然后在第二个表中找到它并返回列的第一行中的值 9是在。所以 B2 应该返回“test2”,因为它在“test2”列中找到了数字 9。最终结果如下所示...

ID#s  RESULT
9      test2
17     test3
49     test7
43     test6
5      test1
32     test4
46     test6
56     test7
20     test3
36     test5
37     test5

知道我会怎么做吗?希望我已经彻底解释了我请求帮助的内容。

【问题讨论】:

    标签: excel excel-formula vba


    【解决方案1】:

    在点击enter的同时按住ctrl+shift试试这个公式

    =OFFSET(Table2,0,MAX(IF(A2=Table2,COLUMN(Table2)))-COLUMN(Table2))
    

    鉴于您的数据,我们返回:

    如果您碰巧有 Excel 2016,并且还想使用带有结构化引用的表格,则可以改用此公式(也使用 CSE 输入):

    =TEXTJOIN(,,IF(A2=myDataTable,myDataTable[#Headers],""))
    

    【讨论】:

    • 很高兴为您提供帮助。编辑为使用 2016 的用户添加一些信息
    【解决方案2】:

    这可以通过 VLOOKUP 方法实现。这个页面很好地解释了如何使用它:http://www.gcflearnfree.org/excel-tips/how-to-use-excels-vlookup-function/1/

    希望这会有所帮助。

    【讨论】:

    • 您能否详细说明一下 VLOOKUP 是如何做到的?它无法找到我的 9,因为它在第 2 列,更不用说返回列中的第一行了。
    • 对不起,误解了问题:=HLOOKUP(A2, Sheet2!A2:G8, 1, FALSE)
    • 那仍然行不通。您从第二张桌子上的 A2 开始,并返回第一个结果。您的函数将为 A2 中的值 9 返回 9。 HLOOKUP 从范围的第一行开始向下,而不是向上,因此如果您将 1 更改为 2,它将返回“10”,依此类推..
    • @GreatSUN,ID# = 2 时失败。
    • 为了进一步详细说明 pcw 所说的内容,它不适用于 A3:G9 的任何行。正如我所说,它仅适用于您范围的第一行。这意味着为了让它在 ID# = 2 时返回结果,范围需要是 A3:G9 等等。
    猜你喜欢
    • 2022-12-09
    • 2017-06-21
    • 2019-10-28
    • 2013-08-24
    • 2015-07-19
    • 1970-01-01
    相关资源
    最近更新 更多