将经过过滤的中间范围传递给INDEX MATCH

时间:2018-06-27 10:41:46

标签: excel excel-formula

我有一个合同表,如下所示。

   A   |   B   |   C   | 
-------------------------
   X   |   5   |   7   |
   Y   |   2   |   4   |
   Z   |   1   |   6   |
   Z   |   5   |   8   |
   X   |   3   |   5   |

我想产生第二张桌子。

   A   |   B   |   C   | 
-------------------------
   X   |   3   |   7   |
   Y   |   2   |   4   |
   Z   |   1   |   8   |

第二张表从第一张表的A列中获取所有唯一值,然后找到与此唯一值相关联的最低B列值和最高C列值。

使用INDEX MATCH就像是要走的路,除了第一个表没有按B或C列排序。

我已经找到了使用公式对范围进行排序的方法,但是没有传递给INDEX MATCH的方法。

任何帮助表示赞赏。

3 个答案:

答案 0 :(得分:3)

就像这里有许多Excel问题一样,您正无缘无故地试图在这里重新发明轮子。

Excel已经为此提供了内置功能。让我向您介绍数据透视表

的世界
  1. 选择表数据

    enter image description here

  2. 插入标签->数据透视表

    enter image description here] 2

  3. 将B列的数据透视字段的值从Sum更改为Min,将C列的数据透视字段的值从Max更改

    enter image description here enter image description here


按预期提供结果:

enter image description here

答案 1 :(得分:3)

您可以使用 Power Query (获取和转换数据):

let
    Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
    #"Grouped Rows" = Table.Group(Source, {"A"}, {{"B", each List.Min([B]), type number}, {"C", each List.Max([C]), type number}})
in
    #"Grouped Rows"

您可以使用数据透视表

A中的字段ROWSB中的字段VALUES(由Min总结),C中的字段VALUES (由Max总结)

答案 2 :(得分:1)

一个数组公式和两个标准伪MINIF / MAXIF公式。

在F2:H2中,

=INDEX(A$2:A$6, MATCH(0, COUNTIFS(F$1:F1, A$2:A$6), 0))   'array formula
=MIN(INDEX(B$2:B$6+(A$2:A$6<>F2)*1E+99, , ))              'MINIFS
=MAX(INDEX(C$2:C$6+(A$2:A$6<>F2)*-1E+99, , ))             'MAXIFS

enter image description here