【问题标题】:Formula to pull all data for Top 25提取前 25 名的所有数据的公式
【发布时间】:2015-07-25 03:42:06
【问题描述】:

我已经关注数据集并且我使用过 Index-Large 函数

=LARGE(INDEX(($A$2:$A$99)*($B$2:$B$99={"x","y"}), , ), ROW(1:1))

... 找出 x 和 y 组合的前 25 个。我将如何拉出列出水果的列?我不能使用大,因为它只用于数字。我还有 20 个只有文本的列。有什么想法吗?

apple        100    x  
banana        50    y  
grapes         6    z  
watermelon    89    x  
cantaloupe     5    x  
orange        24    y   

【问题讨论】:

  • =INDEX(Data!$B$2:$B$74,MATCH(MAX(COUNTIF(Data!$B$2:$B$74,Data!$B$2:$B$74)),COUNTIF (Data!$B$2:$B$74,Data!$B$2:$B$74),0)) 我尝试将它与 CSE(数组公式)一起使用并返回正确的值,但当我拖动它时返回相同的值向下排。
  • 请定义Top 25。您是指列表中具有 xy 的前 25 个吗?您是指前 25 个数字中的匹配文本吗?就目前而言,Top 25 一词太含糊,无法提供解决方案。
  • 匹配前 25 个数字的文本。不能使用查找,因为数字可能相同。所以对于上面示例中的 x 和 y,我会得到 Apple 、 Watermelon、 Banana、 Orange、 Grapes

标签: excel indexing match


【解决方案1】:

您需要先调整为正确列提供的公式。

=LARGE(INDEX(($B$2:$B$99)*($C$2:$C$99={"x","y"}), , ), ROW(1:1))

完成后,它可以用作更大公式中的匹配条件,该公式也匹配列 C 的 x, y

=IFERROR(INDEX(A$2:A$99, MIN(INDEX(ROW($1:$98)+(($C$2:$C$99<>{"x","y"})+($B$2:$B$99<>LARGE(INDEX(($B$2:$B$99)*($C$2:$C$99={"x","y"}), , ), ROW(1:1))))*1E+99, , ))), "")

在下面的示例图像中,该公式将进入 E4。根据需要填充右下角。

      

如果 nmbr 列中的值可能重复(但仍匹配 {x, y}),则不能将一个公式用于整个查找表。在 F4 中使用以下内容。

=LARGE(INDEX(($B$2:$B$99)*($C$2:$C$99={"x","y"}), , ), ROW(1:1))

E4 会是,

=IFERROR(INDEX(A$2:A$99, SMALL(INDEX(ROW($1:$98)+(($C$2:$C$99<>{"x","y"})+($B$2:$B$99<>LARGE(INDEX(($B$2:$B$99)*($C$2:$C$99={"x","y"}), , ), ROW(1:1))))*1E+99, , ), COUNTIF($F$4:$F4, $F4))), "")

将 E4 复制并粘贴到 G4,然后选择 E4:G4 并填写。

      

请注意,在转录公式供您自己使用时,ROW(1:98) 是A2:A99 内的位置,而不是工作表上的实际行。

【讨论】:

  • 只要 x 和 y 值中没有重复的数字就可以工作,例如如果将 B3 更改为 89,那么虽然 89 将被列出两次,banana 会同时显示,而不是 bananawatermelon
  • @barryhoudini - 好点。将COUNTIFS function 带入组合以调整 SMALL 的 k(替换 MIN)可以解决该问题。
  • @DK - 老实说,我没有对那张图片进行 Photoshop 处理。仔细阅读我的叙述。
  • 对我来说很好,。调整了 Row () 公式,一切顺利。谢谢你的帮助!!
猜你喜欢
  • 2015-07-24
  • 2020-01-18
  • 2021-07-26
  • 1970-01-01
  • 1970-01-01
  • 2020-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多