[英]Index match array formula with if condition not working?
我在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
在我的另一張紙上,“ Home”我試圖使用索引匹配(數組公式)從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語句,以嘗試允許用戶輸入特定日期或該日期的星期數。 用戶應該能夠輸入星期數或特定日期並獲得結果。
由於某種原因,如果用戶輸入星期數,則此公式有效,但如果輸入特定日期,則該公式無效。 請有人能告訴我我要去哪里錯嗎? 謝謝
編輯
我從B列中的字符串獲取日期“ 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
當使用此公式將日期輸入為15/12/2016時,F列中的我的周數公式會產生值錯誤。 沒有周數產生。 同樣,如果將日期鍵入為15/12/2016,則在F列中會出現值錯誤,並且不會生成周數。
但是,如果我在E列中手動輸入我的日期為2016年12月15日,則不使用公式將其顯示為2016年12月15日,在F列中顯示為50的星期數。
然后在我的主頁上,J列的日期格式為DD / MM / YYYY(對於英國),我必須在j列中輸入日期為12/15/2016,這將呈現為15/12/2016,然后通過這種方式我得到一個結果。 我想E列中的公式一定有問題嗎?
用戶將在首頁的“ J”列中輸入日期為15/12/2016,而不是12/15/2016。 那么,我該怎么做才能解決此問題?
看來您需要為Gregorian Calendar和ISO 8601標准使用正確的return_type。 包含在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")}
對我來說奇怪的是,該功能似乎正常工作。 您是否檢查了單獨的WEEKNUM(Home!$ J10,21)函數是否返回了正確的星期數。
因為WEEKNUM(Home!$ J10)沒有return_type = 21,所以生成的周數是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")}
即使數據是美國格式並以英國格式輸入,也可以正確匹配數據。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.