我在主页上使用以下索引匹配数组公式:
=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。这很好。
这是我的问题:
我希望用户能够输入特定日期,即E列中的21/12/2016并找到匹配项。但是,有时,用户将不知道具体日期,并且只有一周的数字。
因此,如果用户输入2016年12月21日的周数,那么我的索引匹配公式仍然应该找到匹配。
我遇到的第二个问题是,除非我将主页上的J列格式化为日期,然后我的日期格式不正确,我得到了' 42725'。
所以必须将其设置为日期才能使索引匹配找到结果。
但是如果用户想要在J列(带有日期格式)中输入周数,即51,则显示' 20/02/1900'。同样,我的索引匹配不会返回结果。
答案 0 :(得分:1)
Instaed of ..*(Home!J10=Data!E:E)...
取而代之的是:
.....*(IF(Home!J10<55,Home!J10,WEEKNUM(Home!J10))=Data!F:F)...
将“格式化”列保留为“常规”,然后每个单元格将更改为输入日期的日期和输入周数的数字。
您可能需要仔细检查并重新输入一些条目,以便让他们第一次回到原来的状态,但任何新条目都会自行转移。