2016-12-28 12 views
0

Excelワークブックに2つのワークシートがあります。 シート 'データ'とシート 'ホーム'。条件が一致しない場合のif配列条件式

データ:私の他のシート、「ホーム」で

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 

値が列CとDのものと一致ここで、iはインデックスマッチ(配列数式)を用いたカラムBから番号を検索しようとしていますそして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")} 

私がしようとすると、ユーザーが特定の日付またはそのDの週番号のいずれかを入力できるようにするために、私のインデックスの試合中、if文を入れ子にしています食べた。ユーザーは週番号または特定の日付を入力して結果を得ることができるはずです。

何らかの理由で、この数式はユーザーが週番号を入力すると機能しますが、特定の日付を入力した場合は機能しません。誰かが私がどこに間違っているのかを教えてもらえますか?おかげ

EDIT

私はそうのような列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 

日付をtと入力すると、F列の私の週番号式が値エラーを生成します彼の式は15/12/2016です週番号は生成されません。同様に、日付が15/12/2016と入力された場合、F列に値エラーが発生し、週番号が生成されません。

iが手動で2016年12月15日のように、列Eにおける私の日付を入力する場合は、式なしこれは15/12/2016としてレンダリングおよび50の週番号は、次にカラムF.

に示されています私の家のシートでは、列Jは英国のDD/MM/YYYY形式の日付であり、2011年12月15日に列jの日付を入力しなければなりません。だから、列Eの式に問題があるはずですか?

ユーザは、ホームシートの列Jの日付を2011年12月15日および12/15/2016として入力します。だから私はこれを解決するために何ができますか?

答えて

1

グレゴリオ暦とISO 8601規格に適切なreturn_typeが必要なようです。ストレンジは
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")} 

enter image description here

エクセル2010年に私のために含まれる機能が正常に動作するようです。別々のWEEKNUM(Home!$ J10,21)関数が正しい週番号を返すかどうかチェックしましたか?
return_type = 21のないWEEKNUM(Home!$ J10)のため、作成された週番号は50でなく、51です。

こちらもお試しください。

{=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")} 

enter image description here enter image description here

これは、データが英国の形式で米国の形式と入力しても正しくデータと一致します。

+0

これはありがとうございますが、これは何も解決していないようです。私の数式は、ユーザーが週番号を入力したときにすでに一致するものを見つけています。何らかの理由でユーザーが正確な日付を入力したときに一致するものが見つかりません。 –

+0

私が行った編集が役立つかどうかチェックしますか? –

+0

これはセル形式と関係があるようです。 Excelは、dd/mm/yyyyではなく、mm/dd/YYYYのような米国の形式にしたいと考えています。 –

関連する問題