根据特定标题和行从数据集中查找值

时间:2017-09-11 15:09:04

标签: excel excel-vba vba

我有一些测试数据已经每个季度运行了好几年。

每个表对应四分之一,并且具有办公室四次测试的结果。此数据在Excel中按如下方式组织(这是一个小样本):

enter image description here

使用此数据集,我需要填写此摘要表:

enter image description here

基本上,我需要在数据集中查找与行引用和列引用相对应的值。例如,行引用“UK”和列引用“Test 1A-Q217”,在摘要表中返回“14.85”。

我尝试使用INDEX(MATCH,(MATCH))公式,但这不起作用。由于这些表是一个接一个地布局的,它只会返回第一个表的结果而不是更接近地匹配的引用。填写表格的另一种方法是什么?

1 个答案:

答案 0 :(得分:1)

我理想的方式:

OFFSET内使用VLOOKUP动态设置vlookup区域。我首先会通过以下方式修改您的数据集:

  1. 更改标题行,使col A表示该季度(例如 " Q1-17")和其他标题只是陈述测试(例如"测试1A和#34;)。 这不是必须的,但会使事情变得更加容易。如果您不想弄乱数据,可以使用LEFT / RIGHT / SEARCH在当前标题上方/下方添加col,以便为您执行此操作(请参阅用于从字符串中提取子字符串的其他线程)
  2. 在您的输出表中,将测试放入1行(例如"测试1A"在第1行),将日期放在另一行(例如Q1-17"第2行)
  3. 你的新公式看起来像这样

    =VLOOKUP($A4,OFFSET($A$3:$G$14,MATCH($V1,$A$3:$A$500,0)-1,),MATCH($V$2,$A$3:$Z$3,0),0)
    

    正在发生的事情是,您正在进行正常VLOOKUP并进行2次修改,以使其更具动态性。您使用OFFSET设置查找表,并使用标准MATCH方法设置列。

    您可能需要进行其他修改,因为我已在您的数据集中添加了一行。

    注意:我没有测试过这个公式,您可能需要对公式进行微调,但这可以满足您的需求

    或者,您可以为每个数据集创建命名范围,并在主VLOOKUP内部VLOOKUP选择正确的命名范围以查看其内部。我认为这不太优雅,设置时间会更长,并且每次你想每季度添加一个数据集时都会增加额外的工作量。