【问题标题】:Need Excel Forumla To Sort 2 Columns Which Both Contain Array Formulas需要 Excel 公式对包含数组公式的 2 列进行排序
【发布时间】:2014-12-21 00:10:26
【问题描述】:

我创建了一个 Excel 电子表格来跟踪我尝试过的超过 400 种不同类型的啤酒以及他们的自酿啤酒厂、酒精含量和评级。我使用数组公式来计算有多少不同的啤酒厂和每个啤酒厂有多少啤酒,以及我尝试过多少不同的风格和每种风格的多少。我遇到的问题是对数据进行排序。我在 K 列中列出了所有不同的啤酒厂(不包括重复的)。在 L 列中,我列出了我从每个啤酒厂尝试过的不同啤酒的数量。我想使用 L 列中的值从最大到最小对列 K 和 L 进行排序。同样的事情适用于列 M 和 N,除了它是样式而不是我正在跟踪的啤酒厂。我不知道该怎么做,因为我使用了两个数组公式,每列一个,基本上结果取决于另一个的结果。对此问题的任何帮助将不胜感激。下面是一个链接,您可以下载电子表格以更好地了解我在做什么。

https://www.dropbox.com/s/cysa2rvcgcbs13c/TGS.xlsx?dl=0

另外,我用来在 K 和 M 列中创建唯一列表的数组公式是我第一次尝试数组公式。因此,如果有人能告诉我他们是否有效率,以及是否有更好的方法来做我想做的事情,那就是查看 B 列中的数据,丢弃重复项,并将独特的啤酒厂提取到 K 列. 同样的事情适用于列 C 和 M 中的样式。

提前致谢!

【问题讨论】:

  • 所有数组公式都加倍以进行错误控制。如果您有 Excel 2007 或更高版本,则可以使用 IFERROR 代替 IF(ISNA()) 将处理减半。
  • 太棒了!感谢您的帮助!

标签: arrays excel sorting excel-formula


【解决方案1】:

虽然在单个公式中执行所有计数和排名的可能性很小,但使用 Helper 列更有意义并大大减少了计算负载。出于所有意图和目的,您现有的唯一列表和 COUNTIFS 是辅助列将包含的内容,然后您可以根据 COUNTIF 返回的排名将值返回到另一列。

      

我从 K2 修改了你的 数组公式 并将其放入 P2 中,

=IF(LEN(P1), IFERROR(INDEX($B$2:$B$501, MATCH(0, IF(LEN($B$2:$B$501), COUNTIF(P$1:P1, $B$2:$B$501&""), 1), 0)), ""), "")

Q2 中的标准公式与 L2 中之前的公式类似,

=IF(LEN(P2),COUNTIF($B$2:$B$501,P2), "")

L2 中的公式现在可以使用此标准公式从 Q 列返回排名结果,

=IFERROR(LARGE($Q$2:$Q$501, ROW(1:1)), "")

使用 L2 中的排名返回,K2 可以使用此 数组 公式从 P 列返回匹配的啤酒厂,

=IF(LEN(L2),INDEX($P$2:$P$501,SMALL(IF($Q$2:$Q$501=L2,ROW($1:$500)), COUNTIF(L$2:L2, L2))),"")

对 S、T、M 和 N 列进行了类似修改。然后所有内容都填写到第 501 行。

我已将修改后的工作簿放在我的 SkyDrive here 上供您参考和下载。如果你想删除它,请告诉我。

TGS (Jeeped).xlsx

更多信息来自Multiple Ranked Returns from INDEX(…) with Duplicate Values

【讨论】:

  • 太棒了!谢谢您的帮助!我已经阅读了有关使用辅助细胞的信息,但还不能使用它们来解决这个问题。您可以保留或删除列表。无论哪种方式我都可以。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-01-14
  • 2015-03-17
  • 2015-04-15
  • 2017-07-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多