如何返回偏移值 - Vlookup

时间:2014-03-07 15:57:09

标签: excel vlookup

我正在生成一份报告但是我打了一个墙,其中有一个我需要从报告中提取的值。我试图做一个Vlookup和Hlookup的组合,但我无法让它工作。

所以我需要将2列的值拉回 Signon 值,然后根据第一列(1234569)中的值引用该值

任何帮助都是非常苛刻的

1234569 |   John    |   Smith   |   
        |           |           |   
From    |     To    |   Dur.    |   Activity
9:00    |   9:01    |   0:01    |   Open
9:01    |   9:14    |   0:13    |   Signon

3 个答案:

答案 0 :(得分:0)

所以你想要=sign_off_time(1234569)之类的东西返回9:14?这类事很容易。但确切的实现将在很大程度上取决于您希望读取数据的位置,以及工作表结构的其余部分是什么样的。

基本上,我认为你遇到的根本问题是VLOOKUP()需要索引位于查找数组的第一列,然后才能找到索引右侧的值。解决方案是使用INDEX()MATCH()的组合而不是VLOOKUP()Here's a nice write up of how to use INDEX/MATCH and a comparison of this with VLOOKUP.

编辑:好的,你准备好了吗?在这里,我们去...如果Sheet1看起来像这样:

1234569 |John   Smith   

From    To  Dur.    Activity
9:00    9:01    0:01    Open
8:55    10:15   1:20    Activity3
6:55    8:19    1:24    Activity4
9:01    9:14    0:13    Signon

4657915 Jane    Doe 

From    To  Dur.    Activity
8:55    10:15   1:20    Open
6:55    16:33   9:38    Activity4
11:55   15:42   3:47    Signon

8461224 Bob Dulluth 
(etc)

然后这将在Sheet2中工作(或任何地方,真的)。它找到查找ID的行(例如,1234569),然后在其下方找到第一次出现的“Signon”(无论下面多远),然后从该行查找第二列(签名时间)。如果某个人的记录没有“登录”活动,则中断,它会从下一个人员中找到“登录”。

=INDEX(Sheet1!C2,MATCH("Signon",INDIRECT("Sheet1!R"&TEXT(MATCH(Sheet2!RC1,Sheet1!C1,0),"@")&"C4:R"&TEXT(ROWS(C3),"@")&"C4",FALSE),0)+MATCH(Sheet2!RC1,Sheet1!C1,0)-1)

公式中的引用Sheet2!RC1是查找ID,因此必要时进行更改。

答案 1 :(得分:0)

(在Excel 2010上测试)

=INDEX(OFFSET(INDEX($A:$D,MATCH($F$2,$A:$A,0),0),0,0,5,4),MATCH("Signon",$D:$D,0),MATCH("To",$3:$3,0))

假设:

  • 列表项目编号(1234569)位于A列
  • $ F $ 2包含您要搜索的记录编号
  • “登录”是您要搜索的“活动”行,位于D列
  • “To”是您要搜索的列。
    • 3:3中的列标题在整个表格中保持不变
  • 每个'记录'是5行高4列宽

从这里开始,你应该能够破译公式并根据需要进行调整。 VLOOKUP / HLOOKUP非常有限......通常最好花一点时间使用INDEX / MATCH在工作表中的其他位置查找数据。

希望这有帮助!

答案 2 :(得分:0)

更大的问题是你使用的是查询函数,比如MATCH INDEX,VLOOKUP和一个不是很好的表格数据形式的报告。

如果你能够在原始报告旁边添加一些额外的列,我建议尝试这样的事情:

enter image description here

关键是您需要某种方式在原始报告中标记新的“记录”。我猜测A列中唯一出现'From'的时间是指示一条新记录,但您可能需要一个不同的公式来获取F列的ID。

然后您的公式变为简单的=VLOOKUP("1234569Signon",$G:$H,2,false)