如何将单元格内容用作Excel表格中的搜索条件

时间:2014-06-20 08:04:50

标签: excel excel-formula excel-2007

我有一个名为 myTable 的Excel表格,其内容如下所示:

Partners    2-Jan   3-Feb   25-Mar  27-Mar
O2          20       23       26      0
Vodafone    1        23       25      29
Vectone     0         0       50      60
Orange      25       12       34      15

我还有两个包含

搜索条件的单元格
  1. 合作伙伴
  2. 日期
  3. 例如,单元格A1包含“3-Feb”,单元格A2包含“Vectone”。

    我想使用这两个单元格从 myTable 中进行选择。 例如,使用'3-Feb'和'Vectone'将从 myTable 返回0。

    感谢。

2 个答案:

答案 0 :(得分:1)

=INDEX(MyTable,MATCH(A2,rLabels,0),MATCH(A1,cLabels,0))  

INDEX
MATCH
named range

答案 1 :(得分:0)

感谢pnuts,我稍后修改了它的答案。

使用单元格内容作为myTable的搜索条件时遇到了两个问题:

  1. myTable将来肯定会有更多日期和合作伙伴。如果我们为myTable重命名了列标签和行标签,然后添加了另一个合作伙伴和一些日期,我们必须手动为这些新合作伙伴和日期分配名称。

  2. 如果我直接使用A1的单元格内容,则会导致错误。这是因为A1,3月2日的值将是与myTable(d-mmm)中的格式不同的日期(2/3/2014)。因此,Match在这种情况下并不成功。我已经使用Text函数将A1中的值转换为所需格式的文本,从而产生了正确的匹配。

  3. 以下是我从@pnuts响应中采用的答案。

    =INDEX(myTable,MATCH(A2,myTable[Partners],0),MATCH(TEXT(A1,"d-mmm"),myTable[#Headers],0))
    

    此处,myTable [Partners]引用包含合作伙伴名称的列,而myTable [#Headers]引用包含日期的行。 Text函数将单元格A1转换为文本,允许Match运行。

    以下是我最初的尝试,但是由于担心将来放慢Excel的速度,当会有更多的合作伙伴和日期时,我不喜欢它。

    =VLOOKUP(A2,myTable,MATCH(TEXT(A1,"d-mmm"),myTable[#Headers],0),FALSE)