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

如何使用单元格内容作为Excel表中的搜索条件,excel,excel-formula,excel-2007,Excel,Excel Formula,Excel 2007,我有一个Excel表格,名为myTable,其内容如下所示: 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 我还有两个单元格,其中包

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

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
我还有两个单元格,其中包含

  • 合伙人
  • 日期
  • 例如,单元格A1包含“3-Feb”,单元格A2包含“Vectone”

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

    谢谢

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



    多亏了pnuts,在对其稍作修改后,我采纳了他的答案

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

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

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

  • 以下是我从@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)
    

    谢谢你的尝试。但是,我在问题中遗漏了一个细节:myTable的大小会增加,因此如果我们选择命名列和行标签,那么每次表扩展时都必须这样做。为了解决这个问题,我采用了您的答案来使用我的表的标签和标题。我将在稍后添加我的答案。如果我理解正确:当我为列和行标签指定名称时,对于myTable的当前形式可能没有问题。但在未来,将有更多的日期和合作伙伴,因此myTable将扩展,并且命名范围将不会自动更新。但非常感谢你的回答。恐怕我不知道有多大就足够了,所以我在回答中稍微调整了一下你的答案,使之成为一个理想的解决方案:)那很好。在我意识到可以使用最大行数和列数之前,我发布了我的答案(我对Excel有些陌生)。