首页 > 解决方案 > If 语句基于重复项的存在

问题描述

如果在多行中找到 A 列中的数据,请查看 C 列中的数据以查找那些重复的行。无论哪个是 C 中的最高值,返回相应行但 B 列的值。在我的图片中,我试图自动填充黄色的东西,最好是使用 excel 中的公式。任何帮助是极大的赞赏。

在此处输入图像描述

标签: if-statementindexingexcel-formuladuplicatesmatch

解决方案


我的第一次尝试是这个(您可以在单元格 D2 上复制的公式):

=INDEX($A$2:$C$9,MATCH(MAX(IF($A$2:$A$9=A2,$C$2:$C$9)),$C$2:$C$9,0),2)

这就是它的作用:组合 INDEX-MATCH 的作用与 VLOOKUP 相同,但它比 VLOOKUP 更有效。基本上,它命令 Excel 导航 $A$2:$C$9 范围,然后找到以下匹配项:

  • 找到同一商品的最高价格行(这部分:)MAX(IF($A$2:$A$9=A2,$C$2:$C$9))
  • 然后返回该行 B 列上的任何值。

尽管这个公式似乎有效,但我尝试了一些方法:如果不幸的巧合,两件商品的 MAX 价格相同怎么办?

这就是 CDE888 售价为 217 时发生的情况

因此,可以看出上面的公式是错误的,需要修复。这是新的公式:

INDEX($A$2:$C$9,MATCH(A2&MAX(IF($A$2:$A$9=A2,$C$2:$C$9)),$A$2:$A$9&$C$2:$C$9,0),2)
  • 这一次,公式查找由项目代码及其最高价格组成的值。
  • 其余的与第一个公式完全相同。

最后一句话:我在 D2 单元格上写了这个公式,然后将公式向下拖动。


推荐阅读