Excel索引匹配,查找值如果date匹配或该date的周数匹配?

我在我的主页上使用以下索引匹配数组公式:

=IFERROR(INDEX(Data!B:B,MATCH(1,(Home!H10=Data!C:C)*(Home!I10=Data!D:D)*(Home!J10=Data!E:E),0)),"") 

这在数据表上的B列中查找我的采购订单编号,其中主页上的值匹配。

 Data: Column B Column C Column D Column E COlumn F (Week number) 12345678910 123 5555 21/12/2016 51 Home: Column H Column I Column J Column K Column J 123 5555 21/12/2016 12345678910 

这给J栏中的PO作为结果。 这工作正常。

这是我的问题:

我希望用户能够input一个特定的date,即E列E 2016年12月21日,并find一个匹配。 但是,有时用户不知道具体的date,只有一个星期的数字。

因此,如果用户input21/12/2016的周编号,那么我的索引匹配公式仍然应该find一个匹配,无论如何。

我遇到的第二个问题是,除非我将首页的J栏格式化为date,那么我的date格式不正确,我得到'42725'。

所以这必须设置为date,以便索引匹配find结果。

但是,如果用户想要inputJ列(具有date格式)的星期编号,即51 – 则显示“20/02/1900”。 同样,我的索引匹配不会返回结果。

Instaed of ..*(Home!J10=Data!E:E)...

使用它在它的地方:

 .....*(IF(Home!J10<55,Home!J10,WEEKNUM(Home!J10))=Data!F:F)... 

将“格式化为常规”列保留,如果inputdate,则每个单元格将更改为date,如果input了一个星期号码,则单元格会更改为数字。

您可能需要重新input一些参赛作品,让他们回到他们第一次参赛的状态,但是任何新的参赛作品都将自行转换。