Excel数组查找公式

时间:2015-08-17 19:01:05

标签: arrays excel excel-formula

我有两张桌子如下。对于公式,假设" ID1"在单元格A1和表格之间有一个空行,所以" ID"在A4单元格上。

ID1  ID2  ID3  ID4     ID_OF_MAXDATE
a    b    d    #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,我想要最大日期的id。所以在这种情况下,a,b,d - 最大日期是2015年1月4日。所以我希望公式输出d。

到目前为止,我有以下情况,但#N / A将其抛弃。如果没有N / A值,则下面输出最大日期。但是,我想要最大日期的ID。它应该忽略范围内的N / A。请注意,表1中的所有ID都将显示在表2中。但表1中的某些ID列可能是N / A.

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

2 个答案:

答案 0 :(得分:1)

插入" iferror"。在上面的示例中,将公式更改为:

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

答案 1 :(得分:1)

比预期更大更复杂的公式,但它会考虑到日期在数据集中可能出现多次。请务必使用 CTRL + SHIFT + ENTER 输入。

=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")

我还提出了一些额外的错误处理。公式将返回" No Match Found"如果找不到匹配。

enter image description here