我正在为excel开发一个调度项目。
当我有多个VLOOKUP和MATCH时,我正在努力解决#REF错误
在第2行,数字(04,05,06)的格式为2016年7月4日,2016年7月5日等日期
第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","")
答案 0 :(得分: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"), "")
如果您的Excel是2010年之前或者您需要提供向后兼容性,则可以使用其他两个列匹配公式。
Pre-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"), "")
¹ Excel 2010引入了AGGREGATE function。早期版本不提供。