我正在尝试获取范围内最大值的每个实例,并显示与每个实例关联的五个相邻数据列。
我能够使用这个获取最大的数据:
=IFERROR(LARGE($A$3:$A$100,ROW(1:1)),"NONE")
不幸的是,我无法弄清楚如何获取与下一个重复值实例相关的相邻数据。
注意:
答案 0 :(得分:0)
步骤1)
将你的大函数与你的源范围中的最大值进行比较,如果它小于max display none,否则显示最大值
步骤2)
由于您的数据按升序排序,因此找到最大值的第一个实例范围内的位置。
=MATCH(MAX($A$3:$A$18),$A$3:$A$18,0)
我们将使用它来返回相邻列中的相应值,方法是将其替换为要返回的每列的索引公式
=INDEX(B$3:B$18,MATCH(MAX($A$3:$A$18),$A$3:$A$18,0))
将上述内容放在I3中并将其复制到右侧
步骤3)
由于您的数据按顺序排序,这意味着最大值A列中的下一行将仍然是最大值或列表的结尾。对于每个连续的行,匹配值需要增加1,并且需要一些错误处理
因此我们可以使用第3行中的公式并按如下方式进行调整:
=IFERROR(INDEX(B$3:B$18,MATCH(MAX($A$3:$A$18),$A$3:$A$18,0)+1),"NONE")
OR
=IF(H4="NONE","NONE",INDEX(B$3:B$18,MATCH(MAX($A$3:$A$18),$A$3:$A$18,0)+1)
然后将+1更改为+2然后+3等等,但是由于我们不知道哇多次这个过程将完成,我们可以使用您开始的行引用并更改公式如下:
=IFERROR(INDEX(B$3:B$18,MATCH(MAX($A$3:$A$18),$A$3:$A$18,0)+(row()-3)),"NONE")
OR
=IF(H4="NONE","NONE",INDEX(B$3:B$18,MATCH(MAX($A$3:$A$18),$A$3:$A$18,0)+(ROW()-ROW($A$3))))
-3是第一行数据的硬编码值,也可以更改为-ROW(A3),其中A3是新表格第一行中的单元格。
我在匹配公式中的匹配部分添加了行凹凸。这是一个错误。添加+ 1,+ 2或任何需要添加到匹配公式结果但仍在索引公式中的内容。我已更新上面的公式以反映这一点。
答案 1 :(得分:0)
如果您不想使用排序顺序,只需在H3
使用此数组公式,然后将其自动填充到M8
:
=IFERROR(INDEX($A$3:$F$18,SMALL(IF($A$3:$A$18=MAX($A$3:$A$18),ROW($1:$16)),ROW(A1)),COLUMN(A1)),"NONE")
这是一个数组公式,必须使用Ctrl + Shift + Enter确认!
如果您还有任何疑问,请询问;)
修改强>:
核心是IF($A$3:$A$18=MAX($A$3:$A$18),ROW($1:$16))
,它返回行数组False
,如{FALSE,2,FALSE,FALSE,5,FALSE.....}
。知道SMALL
忽略FALSE
,您会在SMALL(...,1)
第一行获得最大值。 (这种方式SMALL(...,2)
将输出第二行.....)。
使用ROW(A1)
和COLUMN(A1)
作为非静态引用,您获得k
的{{1}}和我们SMALL
的列:)