枝番「A205」に、該当する単価を求める式を入力しましょう。INDEX関数の列番号は、「単価」を返す「5」を指定します。{=INDEX(A2:E9,MATCH(G3&H3&I3,A2:A9&B2:B9&C2:C9,0),5)}単価「500」が返されました!こちらの記事もご覧ください。枝番「C200」に、該当する単価を求める式を入力しましょう。枝番「C200」の、条件をすべて満たす単価はないので、エラー値「#N/A」が返されます。このような場合に、エラー値「#N/A」を表示させない、他の値を表示させる方法があります。それにはIFERROR関数を使います。J5に、IFERROR関数を使った式を入力しましょう。{=IFERROR(INDEX(E2:E9,MATCH(G5&H5&I5,A2:A9&B2:B9&C2:C9,0),1),”エラー”)}「エラー」が表示されます。こちらの記事もご覧ください。⇒エクセルIFERROR関数でVLOOKUP関数のエラーを回避する方法INDEX、SUMPRODUCT、ROWを組み合わせてAND条件で抽出エクセルINDEX関数、SUMPRODUCT関数、ROW関数を組み合わせて、AND(かつ)の複数条件で値を取得します。下の表を使って、説明していきましょう。単価「500」の、複数列の条件に該当する個数を求める式を入力しましょう。SUMPRODUCT関数で条件式を*で繋ぎ、ROW関数で行番号を取得します。=INDEX(D1:D7,SUMPRODUCT((A2:A7=F2)*(B2:B7=G2)*(C2:C7=H2)*ROW(A2:A7)))個数「85」を返します。単価「900」に、複数列の条件に該当する個数を求める式を入力しましょう。=INDEX(D1:D7,SUMPRODUCT((A2:A7=F3)*(B2:B7=G3)*(C2:C7=H3),ROW(A2:A7)))個数「38」を返します。配列計算を使って、複数条件ANDで抽出する時の注意点!SUMPRODUCT関数の配列計算を使って、INDEX関数、ROW関数を組み合わせて、AND(かつ)の複数条件で値を取得する場合、全ての条件に合致しなくても値を返してしまいます。SUMPRODUCT関数の配列計算を使ってAND(かつ)の複数条件で値を取得する場合は、その値が必ず範囲の中にある時です。全ての条件に一致しなくても値を返してしまうので注意しましょう。INDEX、SUMPRODUCT、ROW、MATCHで、AND条件で抽出エクセルINDEX関数、SUMPRODUCT関数、ROW関数、MATCH関数を組み合わせて、AND(かつ)の複数条件で値を取得します。下の表を使って、説明していきましょう。型の中から「型B」に、該当する単価を求める式を入力しましょう。=INDEX(A1:F7,SUMPRODUCT((A2:A7=H2)*(B2:B7=I2)*ROW(A2:A7)),MATCH(J2,A1:F1,0))単価「550」を返します。こちらの記事もご覧ください。型の中から「型B」に、該当する単価を求める式を入力しましょう。=INDEX(A1:F7,SUMPRODUCT((A2:A7=H3)*(B2:B7=I3)*ROW(A2:A7)),MATCH(J3,A1:F1,0))単価「550」を返しましたが、枝番「D205」はありません!SUMPRODUCT関数の配列計算では、複数条件で全てが一致していなくても値を返しています。こちらの記事もご覧ください。型の中から「型E」に、該当する単価を求める式を入力します。=INDEX(A1:F7,SUMPRODUCT((A2:A7=H4)*(B2:B7=I4)*ROW(A2:A7)),MATCH(J4,A1:F1,0))商品No「20002」と枝番「A205」はありますが、「型E」に一致する値はありません。エラー値「#N/A」が返されます。MATCH関数の条件式で一致する値がない場合は、「エラー値」が返されます。こちらの記事もご覧ください。⇒エクセルINDEXとMATCH関数でワイルドカードで検索SUMPRODUCT関数とMATCH関数、AND条件の注意点!SUMPRODUCT関数とMATCH関数を組み合わせて、複数条件ANDで抽出する場合、SUMPRODUCT関数では全ての条件が一致していなくても値を返していますが、MATCH関数の条件式では一致する値がない時は、「エラー値」が返されます。SUMPRODUCT関数とMATCH関数では返す値が違ってきます。こちらの記事もご覧ください。関数の説明INDEX関数エクセルINDEX関数は、行番号と列番号が交差する位置にあるセルの値を返す関数です。エクセルINDEX関数には、配列形式とセル範囲形式の2つの使い方があります。配列形式は、指定した範囲からある値を返します。セル範囲形式は指定した範囲からセルの参照を返します。セルの範囲を指定します。値を返す行を数値で指定します。値を返す列を数値で指定します。配列が1行または1列の場合、行番号または列番号を省略できます。行番号を省略した場合は、必ず列番号を指定します。列番号を省略した場合は、必ず行番号を指定します。INDEX関数、配列形式の使用例G2に式を入力しましょう。=INDEX(B2:D5,3,3)範囲を「B2:D5」で、上から3番目の行、左から3番目の列の値を返します。結果は「850」です。1つまたは複数のセルの参照を指定します。セル参照を返す行位置を数値で指定します。セル参照を返す列位置を数値で指定します。行番号と列番号が交差する位置を返す参照の範囲を1つ選択します。最初の範囲は「1」、次は「2」というように番号で領域を指定します。囲み、1つの範囲と範囲の間をを半角のコンマ(,)で区切ります。各領域が1行または1列の場合、行番号または列番号はそれぞれ省略できます。INDEX関数、セル配列形式の使用例G2に式を入力しましょう。=INDEX((A2:D3,A5:D7),2,4,2)範囲「A2:D3」と「A5:D7」で、領域番号は「2」です。2番目の領域「A5:D7」が選択されます。「A5:D7」の上から2番目の行、左から4番目の列の値を返します。結果は「900」です。指定した範囲内から検査値を探しだし、その値の相対的な位置を返します。検索する値を指定します。検査値には、数値、文字列、または論理値、またはこれらの値に対するセル参照を指定できます。検索するセルの範囲を指定します。-1、0、1の数値のいずれかを指定します。省略した場合は自動的に1が選択されます。「1」:検査値以下の最大の値を返します。この場合、検査範囲を昇順の並べ替える必要があります。「0」:検査値と一致する一番最初の値を返します。行の場合は左から、列の場合は上から最初の値を返します。「-1」:検査値以上の最小の値が検索されます。この場合、検査範囲を降順に並べ替える必要があります。MATCH関数の使用例G2に式を入力しましょう。=MATCH(10025,A2:A6,0)「A2:A6」の範囲内で「10025」の値を探します。「10025」は「A2:A6」の範囲内で2番目なので「2」の値を返します。指定した配列の行番号を返します。行番号を調べたいセルまたはセル範囲を指定します。省略した場合、ROW関数が入力されているセルの行番号が返されます。範囲には複数の範囲を指定することはできません。ROW関数の使用例A2に式を入力しましょう。=ROW()-1この式を「A3:A6」にコピーすると、A2:A6に連続した番号が表示されます。ROW関数の範囲を省略した場合、ROWが入力されているセルの行番号が返されます。A2に「=ROW()」または「=ROW(A2)」で求めた行番号「2」から1を引いて1を表示させ、その式を下にコピーすることで、並び替えても順番が変わらない番号を振ることができます。引数として指定した配列の積を計算し、次にその和を返します。計算の対象となる要素を含む最初の配列引数を指定します。計算の対象となる要素を含む配列引数を指定します。SUMPRODUCT関数で合計を求める使用例A7に、商品No「A2:A5」の合計金額を求める式を入力しましょう。=SUMPRODUCT(B2:B5,C2:C5)合計金額「2,100,000」になります。上の式のようになり合計金額「2,100,000」になります。商品No「12005」の数を求める式を入力しましょう。=SUMPRODUCT((A2:A9=”東京”)*(B2:B9=12005))結果は、「3」です。SUMPRODUCTは配列の計算ができる関数です。条件と条件を「*」で繋いでAND条件の件数を求めることができます。「東京」かつ「12005」は3つあるので3を返します。こちらの記事もご覧ください。数式がエラーの場合、指定した値を返します。それ以外は数式を返します。エラーかどうかチェックする値を指定します。数式がエラーと判断された場合に返す値を指定します。IFERROR関数の使用例D2に、「B2*C2」がエラーの場合「エラー」を返す式を入力しましょう。=IFERROR(B2*C2,”エラー”)結果はエラーにはなりません。「B2*C2」の数式の結果「600,000」を返します。D3に、「B3*C3」がエラーの場合「エラー」を返す式を入力します。#VALUE!」です。エラー値の場合に指定した値「エラー」を返します。こちらの記事もご覧ください。配列数式を使って、エクセルINDEX関数とMATCH関数の組み合わせで、複数条件AND(かつ)で値を抽出する場合、条件に一致する値がなかったらエラー値が返されます。それに対し、SUMPRODUCT関数を使用してAND(かつ)の複数条件で値を取得する場合、全ての条件に合致しなくても値を返してしまいます。エクセルSUMPRODUCT関数は、配列計算を使ってAND(かつ)での複数条件を指定できる便利な関数ですが、多くのデータを処理する場合は、配列数式を使って全ての複数条件に一致した値を抽出をすることをお勧めします。こちらの記事もご覧ください。コメントをキャンセルメールアドレスが公開されることはありません。*サイトエクセルINDEX関数とMATCH関数で色々な複数条件で値を検索、抽出!エクセルINDEXとMATCH関数の組み合わせ!複数条件OR(または)で値を抽出RECOMMENDこちらの記事も人気です。