【问题标题】:Find header values for a maximum in a range查找范围内最大值的标头值
【发布时间】:2019-11-21 16:16:27
【问题描述】:

我正在尝试编写公式或 VBA 来查找

  1. 列标题(位于第 1 行)
  2. 对应的时间(位于colum1)

获取附件 excel 表中C1022:D1352 范围内的最大值。

我已经设法提取列标题值,方法是首先在第 1444 行的“C”到“D”范围内手动查找每列中的最大值,然后使用公式

=INDEX($C$1:$E$1,0,MATCH(MAX($C$1444:$E$1444),$C$1444:$E$1444,0))

现在我正在尝试使用公式从 column1 中找到最大值出现的相应时间

=INDEX($A1022:$A1352,MATCH(MAX(C1022:C1352),C1022:C1352,0),0) 

但我必须每天使用列名(例如“C”)手动更新 20 张工作表的公式,因为最大值可以在“C”或“D”列中找到。

有没有一种简单的方法可以在表格范围内找到最大值,然后从同一行的第一列中获取标题的值和最大值。

【问题讨论】:

  • 这些值是否总是唯一的,最大数量是否可以在数据范围内多次出现?
  • 不确定是否可以在此处附加实际的 excel 文件。

标签: excel vba excel-formula


【解决方案1】:

要查找列标题(不需要辅助单元格):

=INDEX($1:$1,AGGREGATE(15,7,COLUMN(C1022:D1352)/(C1022:D1352=MAX(C1022:D1352)),1))

要查找行时间:

=INDEX($A:$A,AGGREGATE(15,7,ROW(C1022:D1352)/(C1022:D1352=MAX(C1022:D1352)),1))

【讨论】:

  • 这回答了我的问题。这些是神奇的公式,而且效果很好。现在试图理解它。谢谢。 :)
猜你喜欢
  • 2022-01-04
  • 2015-10-25
  • 1970-01-01
  • 2019-02-11
  • 1970-01-01
  • 2020-07-29
  • 1970-01-01
  • 2016-08-31
  • 1970-01-01
相关资源
最近更新 更多