【问题标题】:Excel match and index to select value with 2 column and 1 row criteriaExcel 匹配和索引以选择具有 2 列和 1 行条件的值
【发布时间】:2013-12-23 02:19:34
【问题描述】:

我正在尝试编写一个可以使用INDEXMATCH 返回单元格值的公式,但我无法使其工作。我有以下设置:

year  person   pet    friend   sale
1     jeff     scout  matt     computer
1     carole   riley  tom      mouse
2     jeff     sadi   trung    computer
2     carole   daisy  ellen    mouse

假设我有三个单元格:

year    2
col     person
sale    mouse
RESULT: carole  [year = 2, sale = mouse, column value from 'person']

有没有办法可以在特定单元格中使用索引并匹配为零?我将始终提供一年和销售。但是,列(人、宠物或朋友)会发生变化,因此我需要在年份和鼠标与单元格匹配的特定列中找到值。

一旦我得到一个公式,我将编写一个更通用的函数,但我需要帮助让 INDEX/MATCH 组合正常工作。

【问题讨论】:

  • 您的数据是在 Excel 列表还是表格中?如果您不确定,当您单击数据时,功能区中是否会出现一个名为“表格工具”的新选项卡?如果是这样,如果不是,您就这样做,如果不这样做,您可以将其转换为一个吗?您所要做的就是单击您的数据并按 Ctrl+L

标签: excel indexing match


【解决方案1】:

您可以使用 Index 和 sumProduct 的组合:

=INDEX(Table1[[person]:[friend]],SUMPRODUCT(--(Table1[year]=J1)*--(Table1[sale]=J2)*ROW(Table1[[#Data],[year]]))-1,MATCH(J3,{"person","pet","friend"},0))

这会像我一样工作 下面的例子:

所以 J1 包含要查找的年份,J2 包含销售名称,而 J3 是您要从中返回值的列。

另一种选择是在您的表中添加一个连接列,该列具有年份和销售的值:

然后您将公式更改为:

=INDEX(Table1[[person]:[friend]],MATCH(K1&K2,Table1[Year&Sale],0),MATCH(K3,{"person","pet","friend"},0))

略短,但速度明显加快。

注意:这可能不适用于 2010 以下的 excel 版本,如果您运行的是旧版本,我可以提供修改后的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-08
    • 1970-01-01
    • 2019-05-07
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 2018-10-09
    • 2016-05-04
    相关资源
    最近更新 更多