Excel:基于最大值的一个单元格的值,其他列中的多个条件

我试图根据MAX值(列Range4)与多个标准(Range1,Range2,Range3)获得第8列的值,但是excel给了我一个错误“#N / A”。 错误在哪里?

VLOOKUP(MAX(IF(Range1=2013;IF(Range2="april";IF(Range3="Alexa";Range4))));Range5;8;FALSE) 

那个部分

 {MAX(IF(Range1=2013;IF(Range2="april";IF(Range3="Alexa";Range4))))} 

单独工作(它给了我正确的价值),但不在VLOOKUP函数内。

谢谢!

用于testing的样本数据集:

 First_day Last_day Week_Num Week_Range Month Year Rank_name Rank_value 01/04/2013 07/04/2013 14 1-7 april april 2013 Alexa 10122 08/04/2013 14/04/2013 15 8-14 april april 2013 Alexa 9670 15/04/2013 21/04/2013 16 15-21 april april 2013 Alexa 9130 22/04/2013 28/04/2013 17 22-28 april april 2013 Alexa 8340 29/04/2013 05/05/2013 18 29-5 april april 2013 Alexa 7543 31/03/2014 06/04/2014 14 31-06 april april 2014 Alexa 11428 07/04/2014 13/04/2014 15 07-13 april april 2014 Alexa 7159 14/04/2014 20/04/2014 16 14-20 april april 2014 Alexa 7027 21/04/2014 27/04/2014 17 21-27 april april 2014 Alexa 6675 28/04/2014 04/05/2014 18 28-04 april april 2014 Alexa 5379 

范围和列的等同性:

  • Range1 =列“年”
  • Range2 =列“月”
  • Range3 =列“Rank_name”
  • Range4 =列“Week_Num”
  • Range5 =列“Rank_value”

请尝试:

 =INDEX(Range8;MATCH(MAX(IF(Range1=2013;IF(Range2="april";IF(Range3="Alexa";Range4))));Range4;0)) 

用Control + Shift + Enter。

现有公式(来自pnuts,2014年6月10日)的问题是:公式首先通过嵌套的if将列表缩小,然后从符合条件的行中select最大的Week_Num。 但是,如果find最大值,那么MATCH函数会忽略这些标准(它们只用于从Range4中查找最大值)。 如果您有其他行(即使它们不符合标准)具有相同的Week_Num,那么MATCH将在Range4中find具有相同Week_Num的整个列表中的第一行。 一种解决scheme是将相同的标准添加到在“lookup_value”中使用的MATCH的“lookup_array”。

= INDEX(Range8; MATCH(MAX(IF(范围1 = 2013; IF(范围2 = “四月”; IF(Range3 = “Alexa的”;范围4)))); IF(范围1 = 2013; IF(范围2 = “四月” ; IF(Range3 = “Alexa的”;范围4))); 0))

再次使用Control-Shift-Enter。

我想我正确地input了上面的公式,但是我没有build立一个表来testing它,所以…

另外请注意,如果列表中没有行满足条件,则此公式仍然存在问题。 在这种情况下,你会得到一个错误。 解决scheme是在整个事物的前面添加一个IFERROR。

= IFERROR(INDEX(Range8; MATCH(MAX(IF(范围1 = 2013; IF(范围2 = “四月”; IF(Range3 = “Alexa的”;范围4)))); IF(范围1 = 2013; IF(范围2 =”四月 “; IF(Range3 =” Alexa的 “;范围4))); 0)),”“)