【问题标题】:Excel Function Return Max Two ValuesExcel函数返回最多两个值
【发布时间】:2016-04-26 14:44:20
【问题描述】:

我正在寻求一些关于我确信是一个选项的功能的帮助,但遗憾的是我不知道如何实现。

基本上,我想要一个从 C21:C50 开始的公式并查找前两个值。根据哪两个是顶部,它将引用 B 列中的名称并将该值填充到另一个单元格(公式所在的单元格)中

如果您查看图片,在主要字段中,我们会选择史蒂夫。其次是艾伦。

这是任何人都可以帮助的吗?我只是迷路了:(

【问题讨论】:

    标签: excel excel-formula


    【解决方案1】:

    试试

    =INDEX($B$3:$B$7,MATCH(LARGE($C$3:$C$7,ROW(A1)),$C$3:$C$7,0))
    

    在单元格 B3 中使用 Bob,在单元格 C9 中使用“主要”公式。向下复制到单元格 C10。

    【讨论】:

    • 那种作品。但是,如果一列具有相同值的倍数,则会遇到困难。有办法抵消吗?
    • 该场景不在您的数据样本中。构建一个显示问题的数据样本并解释导致所需结果的逻辑。编辑你的问题来做到这一点。不要在评论中发布。在您进行编辑后发表评论,以便人们收到提醒。
    【解决方案2】:

    如果处理整数,您可以简单地添加+1/ROW([range]) 以避免双精度数:

    =INDEX($B$3:$B$7,MATCH(LARGE($C$3:$C$7+1/ROW($C$3:$C$7),ROW(A1)),$C$3:$C$7+1/ROW($C$3:$C$7),0))
    

    这是一个数组公式,必须用ctrl+shift+enter确认!


    但是,对于 5.01 或 4.99 等数字,这可能会失败。对于这种情况,只需将其与 RANK.EQ 结合使用:

    =INDEX($B$3:$B$7,MATCH(LARGE(RANK.EQ($C$3:$C$7,$C$3:$C$7,1)+1/ROW($C$3:$C$7),ROW(A1)),RANK.EQ($C$3:$C$7,$C$3:$C$7,1)+1/ROW($C$3:$C$7),0))
    

    这是一个数组公式,必须用ctrl+shift+enter确认!


    步骤如图:

    第一个表显示了1/ROW 的直接相加,用于LARGEMATCH 如果双打存在则获取行(因此INDEX 可以选择正确的行)

    第二个表显示了值如何被它们的等级替换为RANK.EQ,然后与第一个表一样处理。

    第三个(灰色)表格显示,如果将第一个公式应用于第二个表格会发生什么情况(以说明排名如何混乱)。


    对于 Excel 2007,只需将 RANK.EQ($C$3:$C$7,$C$3:$C$7,1) 替换为 RANK($C$3:$C$7,$C$3:$C$7,1)


    如果你还有任何问题,尽管问:)

    【讨论】:

      猜你喜欢
      • 2020-12-17
      • 1970-01-01
      • 1970-01-01
      • 2020-08-11
      • 1970-01-01
      • 2020-12-06
      • 2018-01-01
      • 1970-01-01
      • 2020-03-19
      相关资源
      最近更新 更多