【问题标题】:Formula to find top 25 from the data set从数据集中查找前 25 名的公式
【发布时间】:2015-07-24 02:49:30
【问题描述】:

我有以下数据和另外 10 列:将前 20 名或前 25 名的 x 和 y 结合起来的最佳公式是什么?我应该去索引匹配。如果是宏,我将不得不编写代码。我更喜欢公式而不是代码。有什么建议吗?

    100   x
     50   y
     6    z
     89   x
     5    x
     24   y 

【问题讨论】:

  • 创建一个包含xy 总和的列并对其进行排序会有什么问题?
  • 合并到底是什么意思?
  • 数据在哪里,无法可视化100 x 50 y 6 z 89 x 5 x 24 y,能否解密一下让我们明白?
  • 蒂姆,我算不出来。我需要在我的结果中将它分开

标签: excel indexing match


【解决方案1】:

本质上,您正在寻找一个伪 LARGEIF 公式。这可以基于LARGE functionINDEX function 作为标准(非数组)公式。

      

D3:F3 中的公式是,

=LARGE(INDEX(($A$2:$A$99)*(($B$2:$B$99="x")+($B$2:$B$99="y")), , ), ROW(1:1))    ◄ LARGEIF column B is x or y
=LARGE(INDEX(($A$2:$A$99)*($B$2:$B$99=$E$2), , ), ROW(1:1))    ◄ LARGEIF column B is x
=LARGE(INDEX(($A$2:$A$99)*($B$2:$B$99="y"), , ), ROW(1:1))     ◄ LARGEIF column B is y

如果你有很多选择,你可以使用一个常量数组来匹配。 D3也可以,

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

根据需要填写。这些是标准公式,不需要 CSE。

【讨论】:

  • 由于我无法为 x 和 y 拆分列,我想我会尝试使用 =LARGE(INDEX(($A$2:$A$99)*($B$2:$B$99= {"x","y"}), , ), ROW(1:1)) ◄ LARGEIF B 列是 x 或 y
  • 所以公式起作用并为所有人提取了 $ 值。我尝试使用相同的公式来拉出另一列包含所有文本但不起作用的列。你能想到任何具体的原因吗?
  • 根据您的描述拉到前 20 或前 25 我用LARGE function 检索到了最大的数字。文本值没有数值上的值,因此看起来必须使用其他方法。
  • 我之前使用过 Index, Small 来拉取文本字段并且它已经拉入了它。似乎 Large 不会拉,small 会?
  • 如果您成功使用了SMALL function,那么SMALL 可能正在作用于行以返回,它是一个数字,而不是文本。听起来您想要最接近列表顶部的值,而不是数值上的最大值。如果您以相同的方式使用 LARGE,您将获得从列表底部开始的记录。听起来您需要提供一些示例数据以及预期结果。也许用一个可接受的答案来结束这个,然后重新开始。
猜你喜欢
  • 2015-07-25
  • 1970-01-01
  • 2011-02-06
  • 2013-03-07
  • 1970-01-01
  • 2012-09-19
  • 2010-12-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多