Excel数组查找公式

我有两个表如下。 对于公式,假设“ID1”位于单元格A1上,而表格之间有一个空行,所以“ID”位于单元格A4上。

ID1 ID2 ID3 ID4 ID_OF_MAXDATE abd #N/A formula_here ID DATE a 1/1/2015 b 1/2/2015 e 1/3/2015 d 1/4/2015 g 1/5/2015 

在公式中,如果id在该行中,我想要最大date的id。 所以在这种情况下,在a,b,d之外 – 最大date是1/4/2015。 所以我想要公式输出d。

到目前为止,我有下面的,但#N / A把它扔掉。 没有N / A值,下面输出最大date。 但是,我想要最大date的ID。 它应该忽略范围内的N / A。 注意,表1中的所有ID将出现在表2中。但是表1中的一些id列可能是N / A。

 =MAX(IF(A2:D2=A7:A11,B7:B11)) 

一个比预期更大更复杂的公式,但是它会考虑到一个date可能会在数据集中出现多次。 一定要用CTRL + SHIFT + ENTERinput

 =IF(SUM(IFERROR(MATCH(A2:D2,$A$6:$A$10,0),""))>0,LOOKUP(REPT("Z",255),IF(MAX(IF(FREQUENCY(IFERROR(MATCH(TRANSPOSE(A2:D2),$A$6:$A$10,0),""),ROW($B$6:$B$10)-ROW($B$6)+1),$B$6:$B$10))=IF(FREQUENCY(IFERROR(MATCH(TRANSPOSE(A2:D2),$A$6:$A$10,0),0),ROW($B$6:$B$10)-ROW($B$6)+1),$B$6:$B$10),$A$6:$A$10)),"No Match Found") 

我也进行了一些额外的error handling。 如果无法find匹配项,公式将返回“找不到匹配项”。

在这里输入图像说明

插入一个“iferror”。 在上面的例子中,将公式更改为:

 =MAX(IF(IFERROR(A2:D2,"")=A7:A11,B7:B11))