如果条件不起作用的索引匹配数组公式?

我有一个Excel工作簿中的2个工作表。 工作表“数据”和工作表“主页”。

数据:

Column B (Lookup Value) Column C (Criteria) Column D (Criteria) COLUMN E (Criteria) Column F 329115121601 3291 5555 15/12/16 50 <---- Week Number from date 

在我的另一张纸上,“家”我试图从列B使用索引匹配(数组公式),其中的值匹配列C和D和E或F中的数字。

家:

 Column H Column I Column J Column K 3291 5555 15/12/2016 or Week 50 {=IFERROR(INDEX(Data!$B:$B,MATCH(1,(Home!$H10=Data!$C:$C)*(Home!$I10=Data!$D:$D)*(IF(Home!$J10<55,Home!$J10,WEEKNUM(Home!$J10))=Data!$F:$F),0)),"No Po Found")} 

我在我的索引匹配中嵌套if语句来尝试并允许用户input该date的特定date或星期数。 用户应该能够input任一周数或特定的date,并得到一个结果。

出于某种原因,如果用户input一个星期的数字,这个公式的作品,但如果他们input一个特定的date,则不适用。 请有人告诉我我要去哪里错了吗? 谢谢

编辑

我从列B中的string得到我的date'151216'像这样:

数据:(公式视图)

 Column B Column E (UK Date Formatted as DD/MM/YYYY) Column F (Week Num) 329115121601 =DATE("20"&MID(B8,9,2),MID(B8,7,2),MID(B8,5,2)) =IF(F8<>"",WEEKNUM(F8,21),"") 

数据:(价值观)

 Column B Column E (UK Date Formatted as DD/MM/YYYY) Column F (Week Num) 329115121601 15/12/2016 50 

如果在此公式中inputdate为2016年12月15日,则列F中的我的星期数公式会产生一个值错误。 没有周编号。 同样,如果dateinput为15/12/2016我在F列中得到一个值的错误,并没有生产周数。

但是,如果我手动input我在E列中的date(如2016年12月15日),则无法使用公式,这将显示为2016年12月15日,而F列中显示的是50周的数字。

然后在我的家里,J栏是英国的date格式为DD / MM / YYYY,我必须在2016年12月15日inputj列中的date,这将在15/12/2016呈现,然后这样我得到一个结果。 那么E列中的公式必定会有问题呢?

用户将在2016年12月15日12月15日之前在家页上的J栏中inputdate。 那么我能做些什么来解决这个问题呢?

看来你需要有正确的return_type格里历和ISO 8601标准。 包含在Excel 2010中。
WEEKNUM(主页!$ J10,21)

 {=IFERROR(INDEX(Data!$B:$B,MATCH(1,(Home!$H10=Data!$C:$C)*(Home!$I10=Data!$D:$D)*(IF(Home!$J10<55,Home!$J10,WEEKNUM(Home!$J10,21))=Data!$F:$F),0)),"No Po Found")} 

在这里输入图像说明

对我来说奇怪的function似乎工作正常。 你检查是否分离的WEEKNUM(Home $ $ J10,21)函数返回正确的周数。
因为WEEKNUM(Home!$ J10)没有return_type = 21,所生产的weeknumber是51而不是我们想要的50。

也试试这个。

 {=IFERROR(INDEX(Data!$B:$B,MATCH(1,(Home!$H10=Data!$C:$C)*(Home!$I10=Data!$D:$D)*(IF(Home!$J10<55,Home!$J10,ISOWEEKNUM(Home!$J10))=Data!$F:$F),0)),"No Po Found")} 

在这里输入图像说明 在这里输入图像说明

即使数据是美国格式并以英国格式input,也能正确匹配数据。