当前位置: 首页 > 知识库问答 >
问题:

在Excel中,如何从范围的子集中获取与最大值相对应的标题?

顾嘉德
2023-03-14

我已经超越了我的Excel知识。我试图在Excel中做一个类似民意调查的东西。我的问题在于显示选择的结果。以下是我目前掌握的情况:

我需要选择对应于B2: G2范围内值最高的单元格的标头(类型1)。但是,如果有平局,我需要在B2: G2范围内值最高的单元格中选择对应于B3: G3范围内值最高的标头。

在我的示例中,列“bb”和“cc”在类型1(5)上共享最高值。因此,为了确定获胜者,我需要比较它们之间类型2的最高值。由于“bb”是0,“cc”是1,我希望“cc”是最终结果。

配方的成分如下:

J2:显示第2行的单元格计数,其值在范围内最高。所以,2。我用COUNTIF与MAX进行了比较。

K2:显示它在第2行找到的具有最高值的第一个标头。我使用以下公式进行管理:

=INDEX($B$1:$G$1;0;MATCH(MAX($B$2:$G$2);$B$2:$G$2;0))

老实说,我并不完全理解那个公式。在网上教程的帮助下做的。

I2:当B2: G2范围内有平局时显示“TIE”。否则显示获胜的头球(K2)。

J3:显示范围B3:G3上具有最大值的单元格数,但仅考虑从第2行中获胜的单元格。我使用COUNTIFS完成了此操作。

=COUNTIFS(B3:G3;LARGE(B3:G3;1);B2:G2;MAX(B2:G2))

编辑:刚刚在B3上输入数字“4”发现上面的公式也不起作用...

I3:应遵循与上述单元格相同的模式。当仍有领带时显示“领带”。否则将显示获胜标题(将在 K3 上显示)。

K3:我不知道在这里放什么。可能是因为我不太明白INDEX、MATCH等公式,我不知道从上面的行中检查两个“获胜”列之间的最高值并获得标题的方法

有人可以帮助我吗?

共有2个答案

阎修杰
2023-03-14

这是一种处理消费品的方法。我真的不知道你想在I3、J3和K3取得什么样的成绩。我会努力锻炼。

I2:

=IF(SUMPRODUCT(--(B2:G2=MAX(B2:G2)))>1,"TIE","")

J2:

=SUMPRODUCT(--(B2:G2=MAX(B2:G2)))

K2:

=IF(B7>1,OFFSET(B1,0,SUMPRODUCT(--(B3:G3=MAX(B3:G3))*--(B2:G2=MAX(B2:G2))*{0,1,2,3,4,5})),OFFSET(B1,0,SUMPRODUCT(--(B2:G2=MAX(B2:G2))*{0,1,2,3,4,5})))

{0,1,2,3,4,5}指的是标头的数量,如果更多,这个数组需要更改

束福
2023-03-14

首先,让我们确定是否存在平局。正如您所发现的,您可以通过计算最大数字在范围内出现的次数来做到这一点。

=COUNTIF($B2:$G2;MAX($B2:$G2))

如果该计数大于 1,则存在平局。

=IF(COUNTIF($B2:$G2;MAX($B2:$G2))>1;"TIE";"no tie")

如果出现平局,您希望将第 3 行中的值作为平局。我们可以使用此数组公式将它们添加到第 2 行的值中。您必须使用 Ctrl Shift Enter(而不仅仅是 Enter)确认数组公式,否则它将不起作用。

=INDEX($B$1:$G$1,MATCH(MAX(((IF(B2:G2=MAX(B2:G2),MAX(B2:G2),0))+B3:G3)),INDEX((B2:G2+B3:G3),0)))

但是,如果有平局,您只想在第3行中考虑因素,因此您可以重复使用上面的IF语句并将上面公式中的“平局”替换为数组公式,并记住按Ctrl Shift回车!!

=IF(COUNTIF($B$2:$G$2,MAX($B$2:$G$2))>1,INDEX($B$1:$G$1,MATCH(MAX(((IF(B2:G2=MAX(B2:G2),MAX(B2:G2),0))+B3:G3)),INDEX((B2:G2+B3:G3),0))),"no tie")

如果没有平局,你已经有了查找数值的公式。

我的系统使用逗号作为列表分隔符。在我发布的公式中,我已经用分号手动替换了它们,但是如果我可能遗漏了一个,请原谅我。

现在您可以将这些公式复制到第3行。如果第3行的数据中有平局,您将需要第4行的数据来打破平局。

要理解索引/匹配组合,请从您的第一个公式开始,从里到外阅读。Max()查找最大的数字。Match()返回B2到G2范围内最大数字的位置,即列号,即2(范围内的第二列)。index查看B1到G1,并从Match返回的位置返回列值,即第二列,即文本bb。

使用第3行作为平局打破符,公式的工作原理几乎相同,只是当第2行中的值为最大值时,将第2行和第3行相加,然后使用该数字来查找最大值和匹配值。

 类似资料:
  • 问题内容: 我尝试过但失败了: 问题答案: 使用 GREATEST() 例如: 注意:每当那时任何单个值包含null时,此函数始终返回null(感谢用户@ sanghavi7)

  • 我使用getElementsByClass获取一个元素,我注意到span标签的不寻常使用。文本实际上在标签特征-标题内,而不是跨越一些文本。 以下是我得到的信息: 这是我的代码: 有人能帮助获取span标签的“标题”数据吗?

  • 问题内容: 我正在尝试从MySQL数据库中找出整数(有符号或无符号)的最大值。有没有办法从数据库本身撤回此信息? 有没有我可以使用的内置常量或函数(标准SQL或MySQL专用)。 在http://dev.mysql.com/doc/refman/5.0/en/numeric- types.html上, 它列出了值- 但是数据库有一种方法可以告诉我。 以下是MAX_BIGINT-我想要的是MAX_I

  • 问题内容: 我想知道如何在给定父范围的情况下获取所有子范围的列表。我可以从该范围的属性中找到$ childHead,$ childTail,$ nextSibling和$$ prevSibling。 我现在使用的方法是从父级获取childHead,然后使用nextSibling获取下一个孩子,直到nextSibling为空。 有没有更好的方法?鉴于我想在所有子项上调用方法[getModel],是否

  • 问题内容: 有一个ArrayList存储整数值。我需要在此列表中找到最大值。例如,假设arrayList存储的值为:,最大值为。 寻找最大值的有效方法是什么? @Edit:我只是找到一个不确定的解决方案 这将返回最大值。 比较每个值的另一种方法,例如 问题答案: 你可以使用轻松实现所需的内容- 高效阅读 -足够的 Javadoc for Collections.max 根据其元素的自然顺序返回给定