2015-09-02 36 views
1

我正在为excel调度项目。在Excel中使用相同的值进行双向查找#REF错误

我与我有一个以上的VLOOKUP和MATCH

enter image description here

第2行,数字(04,05,06)被格式化为日期7#REF错误挣扎/ 4/2016,7/5/2016等

第9行(表8)的表格就是我输入日期的地方。

的作品在B5罚款公式为

=IF(VLOOKUP(A3,Table8[[#All],[Name]:[Date]],MATCH(B2,Table8[[#All],[Date]],0),FALSE)=B2,"OFFr","") 

一个简单的复制和粘贴C5 ..但会返回#REF错误

=IF(VLOOKUP(A3,Table8[[#All],[Name]:[Date]],MATCH(C2,Table8[[#All],[Date]],0),FALSE)=C2,"OFFr","") 

回答

1

VLOOKUP function没有做什么你认为它是。它在B5中正常工作,第二行(2)提供了VLOOKUP的column_num参数中的第二列。

使用AGGREGATE¹ function作为匹配日期。

=IFERROR(IF(AGGREGATE(15, 6, Table8[date]/((Table8[name]=$A3)*(Table8[date]=B$2)), 1)=B$2, "OFFr"), "") 

AGGREGATE two column match

如果您的Excel是前2010或你需要提供向后兼容性,还有另外两个栏比赛公式可用。

预xl2010两列匹配:

=IFERROR(IF(INDEX(Table8[date],MAX(INDEX((ROW(Table8[name])-ROW(Table8[[#Headers],[name]]))*(Table8[name]=$A3)*(Table8[date]=B$2), ,)))=B$2, "OFFr"), "") 

¹AGGREGATE function用Excel 2010中引入的。它是不是在早期版本。

+0

谢谢!像魅力一样工作 – hinteractive02

+0

无后顾之忧。如果您需要它,我已经添加了一个pre-xl2010解决方案。 – Jeeped