Excel 数式 - 2 つの別々の値 (どちらかまたは両方) に基づいて値を返す

Excel 数式 - 2 つの別々の値 (どちらかまたは両方) に基づいて値を返す

この数式を使用して、以下の表から値を返します。

=IF(ISNA(VLOOKUP(A2,USUB,1,FALSE)),"No Fruit Found",VLOOKUP(A2,USUB,2,FALSE))

USUB テーブルには次のデータがあります:

Fruit          Fruit Code   FruitID Location          CITY
Apple             APP          A    SEATTLE,WA          SEATTLE
Bananas           BAN          B    MODESTO,CA          MODESTO
Cherry            CHER         C    CHARLESTON,SC       CHARLESTON
Blackberrires     BLCKB        D    VICKSBURG,VA        VICKSBURG
Blueberries       BLUB         E    SAN DIEGO,CA        SAN DIEGO
Cantaloupe        CANT         F    GULF SHORES, AL     GULF SHORES
Grapes            GRP          G    NAPA VALLEY,CA      NAPA VALLEY
Peach             PCH          H    ATLANTA, GA         ATLANTA
Grapefruit        GRPFRT       I    FT LAUDERDALE, FL   FT LAUDERDALE
Pomegranate       POM          J    HONOLULU, HI        HONOLULU
Kiwi              KIW          K    SALEM, OR           SALEM

最初に Fruit (USUB,1) を確認し、次に Location (USUB,4) を確認し、数式の条件に基づいて Fruit Code (USUB,2) の値を返すには、どのような数式を使用すればよいでしょうか。

答え1

私はめったに使用を勧めませんDGET機能ですが、これはそれをうまく活用できる完璧な例です。セットアップと使用方法については下の画像をご覧ください。

ここに画像の説明を入力してください

式は次のとおりです。

=DGET(USUB,"Fruit Code",$A$1:$B$2)

さらに、場所を指定しない場合は、その果物のコードだけを検索するという利点もあります。

一致する果物と場所の組み合わせがない場合を見つけるには、以下を参照してください。

=IFERROR(DGET(USUB,"Fruit Code",$A$1:$B$2),"Not found")

答え2

複数の条件を配列として入力した Index/Match を使用します ( CTRL+SHIFT+ENTER:

=INDEX($C$2:$C$13,MATCH(H3&I3,$B$2:$B$13&$E$2:$E$13,0))

(必要に応じて調整してください)

ここに画像の説明を入力してください

つまり、フルーツ コードと場所を使用して ID を返すことができました。数式は に正しく解決されますJ。これがあなたが求めていたものですか? 基本的には、Match()条件を でリンクし&、次に条件に一致する範囲を でリンクして&、配列として入力するだけです。

答え3

これは最初に重複があるかどうかを確認し、重複がない場合は、場所に入力されたものに関係なく正しい ID を返します。

同じ果物が複数ある場合は、場所を調べて一致するものを探します。

どちらの場合も一致するものが見つからない場合は、果物が存在しないか、果物が複数ある場合の果物と場所の組み合わせが正しくありません。

=IF(COUNTIF(A:A,H2)>1,IFERROR(INDEX($C$2:$C$13,MATCH(1,INDEX(($D$2:$D$13=I2)*($A$2:$A$13=H2),),0)),"Multiple fruits but Location is wrong"),IFERROR(INDEX(C:C,MATCH(H2,A:A,0)),"Not Found"))

テーブルを参照する場合は、次のようにします。

=IF(COUNTIF(USUB[Fruit],H2)>1,IFERROR(INDEX(USUB[FruitID],MATCH(1,INDEX((USUB[Location]=I2)*(USUB[Fruit]=H2),),0)),"Multiple fruits but Location is wrong"),IFERROR(INDEX(USUB[FruitID],MATCH(H2,USUB[Fruit],0)),"Not Found"))

ここに画像の説明を入力してください

関連情報