【问题标题】:Microsoft Excel - for each unique value in column A, return max value from column C and the corresponding value from BMicrosoft Excel - 对于 A 列中的每个唯一值,返回 C 列的最大值和 B 列的相应值
【发布时间】:2016-04-01 15:24:22
【问题描述】:

使用公式,我希望为 A 列中的每个唯一值获取 C 列的最大值,然后我还想将 B 列中的相应值返回到 C 列的最大值。输出应该是第二个屏幕截图中的数据摘要。我已经尝试过数据透视表、条件格式和此链接中的帮助,但没有成功Get the maximum values of column B per each distinct value of column A

original data

desired result

用公式可以吗?

【问题讨论】:

    标签: excel max


    【解决方案1】:

    所以对于最大数量使用 AGGREGATE() 函数:

    =AGGREGATE(14,6,$C$2:INDEX(C:C,MATCH(1E+99,C:C))/($A$2:INDEX(A:A,MATCH(1E+99,C:C))=I2),1)
    

    然后用一个简单的 SUMIF() 求容量:

    =SUMIFS(B:B,A:A,I2,C:C,K2)
    

    AGGREGATE() 函数是在 Excel 2010 中引入的。


    对于其他版本,不太健壮的数组公式 MAX(IF()) 将代替 AGGREGATE:

    =MAX(IF($A$2:INDEX(A:A,MATCH(1E+99,C:C))=I2,$C$2:INDEX(C:C,MATCH(1E+99,C:C))))
    

    作为数组公式,退出编辑模式时必须使用 Ctrl-Shift-Enter 确认。正确完成后,Excel 会自动将 {} 放在公式周围以表示数组公式。

    另外,如果您拥有最新的 Office 365 或使用在线应用程序,则以下非 CSE MAXIFS() 也可以使用:

    =MAXIFS($C$2:INDEX(C:C,MATCH(1E+99,C:C)),$A$2:INDEX(A:A,MATCH(1E+99,C:C)),I2)
    

    这两个不如 AGGREGATE() 健壮,因为如果数据中有错误,它们会中断。 AGGREGATE() 将忽略它们。

    【讨论】:

      【解决方案2】:

      这是在表格中使用数组公式的另一个选项。我没有从工作表中的 A1 开始执行此操作,因此图像有我的单元格/行 ID 可以帮助!

      单元格 M17:=IFNA(INDEX([Host], MATCH(0, COUNTIF($M$16:M16, [Host]), 0)),"Unknown") +Ctrl+Shift+Enter

      单元格 N17:=MAX(IF([Host]=[@UniqueHost],[Duration])) +Ctrl+Shift+Enter

      细胞 O17:=IFNA(INDEX([Capacity],MATCH([@UniqueHost]&[@MaxDuration],[Host]&[Duration],0)),0) +Ctrl+Shift+Enter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-03-10
        • 2021-11-14
        • 2015-12-15
        • 1970-01-01
        • 2020-11-17
        • 1970-01-01
        • 2021-12-06
        相关资源
        最近更新 更多