我有一个设计软件,可以将数据提取到Excel工作表格式 输出分为2列,每列中的每列超过1000行。 为了利用这些数据,我需要将它总结为两列中最多的5个最高值。因此,这并不意味着它是一列的最大值及其对应的值,但它可能意味着第1列和第2列的第2大值。第2列的第4大值。
例如(如果我们引用了一些输出数据):
我应该选择的值是:
如果有任何可能的方法来实现这一目标,那就很棒了
谢谢..
示例文件:http://goo.gl/UIEFEv
示例文件2 :http://goo.gl/VSvuVf
答案 0 :(得分:3)
这是一个公式解决方案。我使用了20行并提取了每列包含前5行的行 - 您可以根据需要扩展到尽可能多的行。
使用A1中的数据:B20在D1中使用此公式,并使用 CTRL + SHIFT + ENTER 进行确认并复制到E1并向下复制列:
=IFERROR(INDEX(A$1:A$20,SMALL(IF(($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5)),ROW(A$1:A$20)-ROW(A$1)+1),ROWS(D$1:D1))),"")
注意:只提取了八行,因为有些行包含两列中前五位的值。我在字母A和B中添加了突出显示以更清楚地说明
见下面的截图
修改强>
根据以下评论,您似乎需要包含该列最高值的行组合....以及总数 两者的行列。
在原始公式中,有两个条件与" +",即
相连 ($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5)
" +"为您提供"OR"
类型功能,例如在这种情况下,如果单个值位于该特定列的前5位,则包括行。您可以添加其他条件,因此如果您还想添加前5个中考虑两个列总数的行,那么您可以添加另一个"子句",即。
($ A $ 1:$ A $ 20 - ; = LARGE($ A $ 1:$ A $ 20,5))+($ B $ 1:$ B $ 20 - ; = LARGE($ B $ 1:$ B $ 20,5 )的 +($ A $ 1:$ A $ 20±$ B $ 1:$ B $ 20 - ; = LARGE($ A $ 1:$ A $ 20±$ B $ 1:$ B $ 20,5))强> < / p>
....并且在完整的公式中包括你得到这个版本: 您可以使用 <强>解释强> 以上部分显示了如何将 SMALL函数然后提取第k个最小值,k由ROWS(D $ 1:D1)定义,在D1(或E1)中从1开始,每行递增1。 当您用尽符合条件的行=IFERROR(INDEX(A$1:A$20,SMALL(IF(($A$1:$A$20>=LARGE($A$1:$A$20,5))+($B$1:$B$20>=LARGE($B$1:$B$20,5))+($A$1:$A$20+$B$1:$B$20>=LARGE($A$1:$A$20+$B$1:$B$20,5)),ROW(A$1:A$20)-ROW(A$1)+1),ROWS(D$1:D1))),"")
+
和*
(对于AND
)的组合进一步优化,例如对于新条件,您可能只想包含总数在前5位的行,如果其中一个单值在该列的前10位... +
用于OR
条件。在公式中,如果这些条件是TRUE
,则IF
函数返回&#34;相对行号&#34;范围(使用ROW(A$1:A$20)-ROW(A$1)+1
)。INDEX
函数从该行获取实际值。SMALL
时,函数将返回#NUM!
错误,IFERROR
此处转换为空白
答案 1 :(得分:1)
问题有点不清楚,但如果你的意思是获得A列的5个最高值及其在B列中的相应值,那么B列中的五个最高值和A列中的相应值则为(非)自动化)解决方案非常简单。