金額「52,000」が返されました。INDEX、SUMPRODUCT、ROWを組み合わせてAND条件で抽出エクセルINDEX関数、SUMPRODUCT関数、ROW関数を組み合わせて、ANDの複数条件で値を抽出しましょう。個数「525」の3つの条件で、該当する金額を求める式を入力しましょう。=INDEX(D1:D7,SUMPRODUCT((A2:A7=I2)*(B2:B7=J2)*(C2:C7=K2)*ROW(A2:A7)),1)ISUMPRODUCT関数で複数条件を指定します。指定した条件式は*で繋ぎ、ROW関数で行番号を取得します。金額「8,000」が返されます。個数「235」、複数列の条件に該当する金額を求める式を入力しましょう。=INDEX(D1:D7,SUMPRODUCT((A2:A7=I3)*(B2:B7=J3)*(C2:C7=K3),ROW(A2:A7)),1)金額「12,000」が返されます。SUMPRODUCT関数で条件式を*で繋ぎ、ROW関数で行番号を取得します。こちらの記事もご覧ください。⇒エクセルINDEX関数とMATCH関数を使って検索、抽出する方法SUMPRODUCT関数の配列計算は、完全一致の値を返さないSUMPRODUCT関数の配列計算を使って、AND(かつ)の複数条件で値を取得する場合は、その値が必ず範囲の中にある時です。SUMPRODUCT関数の配列計算を使って、AND(かつ)の複数条件で値を取得する場合、全ての条件に合致しなくても値を返してしまいます。値が必ず範囲の中にない場合は、他の方法で抽出しましょう。こちらの記事もご覧ください。⇒エクセルINDEX関数とMATCH関数を使ってOR(または)の複数条件で値を取得するINDEX、SUMPRODUCT、ROW、MATCHを組み合わせてAND条件で抽出エクセルINDEX関数、SUMPRODUCT関数、ROW関数、MATCH関数を組み合わせて、ANDの複数条件で値を抽出しましょう。ランクの中から「Cランク」、複数列の条件に該当する「単価」を求める式を入力しましょう。ランクに入力されているのは「単価」です。=INDEX(A1:G7,SUMPRODUCT((A2:A7=I2)*(B2:B7=J2)*ROW(A2:A7)),MATCH(K2,A1:G1,0))SUMPRODUCT関数で条件式を*で繋ぎ、ROW関数で行番号を取得します。MATCH関数で、ランク「Cランク」の列番号を取得します。金額「250」を返します。こちらの記事もご覧ください。⇒エクセル関数INDEXとMATCHで複数条件で検索、抽出!SUMPRODUCT関数とMATCH関数とでは、一致する値がない場合の返す値が違いますSUMPRODUCT関数の条件式で、枝番「C101」一致する値がない場合の式、L3に入力しましょう。=INDEX(A1:G7,SUMPRODUCT((A2:A7=I3)*(B2:B7=”C101′′)*ROW(A2:A7)),MATCH(K3,A1:G1,0))「370」が返されました!枝番「C101」に一致する値がなくても、値を返してしまいます!MATCH関数の条件式で、「Dランク」に一致する値がない場合の式を、L4に入力しましょう。=INDEX(A1:G7,SUMPRODUCT((A2:A7=I4)*(B2:B7=J4)*ROW(A2:A7)),MATCH(K4,A1:G1,0))結果は「#N/A」です。MATCH関数の条件式では、一致する値がなかった場合「エラー値」を返します。こちらの記事もご覧ください。複数列の複数条件(AND)で値を抽出する場合の注意点SUMPRODUCT関数とMATCH関数とでは、一致する値がない場合、返す値が違ってきます。SUMPRODUCT関数は、完全に一致する値がなくても値を返してしまします。MATCH関数は完全に一致する値がなかった場合、「エラー値」を返します。SUMPRODUCT関数の配列計算を使っての複数条件(AND)では、完全に一致する値が検索する範囲にある時に使いましょう。こちらの記事もご覧ください。関数の説明INDEX関数エクセルINDEX関数は、行番号と列番号が交差する位置にあるセルの値を返す関数です。エクセルINDEX関数には、配列形式とセル範囲形式の2つの使い方があります。配列形式は、指定した範囲からある値を返します。セル範囲形式は指定した範囲からセルの参照を返します。セルの範囲を指定します。配列内の値の行番号を、数値で指定します。配列内の値の列番号を、数値で指定します。配列が1行または1列の場合、行番号または列番号を省略できます。行番号を省略した場合は、必ず列番号を指定します。列番号を省略した場合は、必ず行番号を指定します。INDEX関数、配列形式の使用例G2に式を入力しましょう。=INDEX(A1:D5,4,4)範囲を「A1:D5」の中で、上から4番目の行、左から4番目の列の値を返します。結果は「68,000」になります。1つまたは複数のセルの参照を指定します。セル参照を返す行位置を数値で指定します。セル参照を返す列位置を数値で指定します。行番号と列番号が交差する位置を返す参照の範囲を1つ選択します。最初の範囲は「1」、次は「2」というように番号で領域を指定します。囲み、1つの範囲と範囲の間をを半角のコンマ(,)で区切ります。各領域が1行または1列の場合、行番号または列番号はそれぞれ省略できます。INDEX関数、セル範囲形式の使用例F2に式を入力しましょう。=INDEX((A2:C3,A6:C7),2,3,2)領域番号は「2」です。2番目の領域「A6:C7」が選択されます。2番目の「A6:C7」の領域、上から2番目の行、左から3番目の列の値を返します。結果は「38,000」です。指定した範囲内から検査値を探しだし、その値の相対的な位置を返します。こちらの記事もご覧ください。検索する値を指定します。検査値には、数値、文字列、または論理値、またはこれらの値に対するセル参照を指定できます。検索するセルの範囲を指定します。-1、0、1の数値のいずれかを指定します。省略した場合は自動的に1が選択されます。「1」:検査値以下の最大の値を返します。この場合、検査範囲を昇順の並べ替える必要があります。「0」:検査値と一致する一番最初の値を返します。行の場合は左から、列の場合は上から最初の値を返します。「-1」:検査値以上の最小の値が検索されます。この場合、検査範囲を降順に並べ替える必要があります。MATCH関数の使用例F2に、製造No「B15000」の位置を返す式を入力しましょう。=MATCH(“B15000”,A2:A6,0)「B15000」は「A2:A6」の範囲内で4番目なので「4」の値を返します。結果は「4」になります。数式がエラーの場合、指定した値を返します。それ以外は数式を返します。こちらの記事もご覧ください。エラーかどうかチェックする値を指定します。数式がエラーと判断された場合に返す値を指定します。IFERROR関数の使用例D2に式を入力しましょう。=IFERROR(B2/C2,”エラー”)B2/C2の数式の結果は「エラー」にはなりません。B2/C2の数式の結果「0.5」を返します。D3に式を入力します。=IFERROR(B3/C3,”未設定”)結果は、B3/C3の数式はエラー値「#DIV/0!」です。「未設定」が表示されます。こちらの記事もご覧ください。指定した配列の行番号を返します。行番号を調べたいセルまたはセル範囲を指定します。省略した場合、ROW関数が入力されているセルの行番号が返されます。数式が入力されている行の行番号を調べます。=ROW()A2の行番号は「2」です。行番号「2」が返されます。=ROW(B5)B5の行番号は「5」です。行番号「5」が返されます。=ROW(B3:B6)「B3:B6」の範囲の1行目の行番号を調べます。1行目はB3なので、行番号は「3」です。行番号「3」が返されます。引数として指定した配列の積を計算し、次にその和を返します。計算の対象となる要素を含む最初の配列引数を指定します。計算の対象となる要素を含む配列引数を指定します。SUMPRODUCT関数で合計を求める使用例F2に金額を求める式を入力しましょう。=SUMPRODUCT(C2:C9,D2:D9,E2:E9)金額は、「20,254」になります。=C2*D2*E2+C3*D3*E3*+C4*D4*E4*+C5*D5*E5*+C6*D6*E6*+C7*D7*E7*+C8*D8*E8+C9*D9*E9上の式になります。りんごの合計金額」を求めてみます。=SUMPRODUCT((A2:A9=H2)*(B2:B9=I2),C2:C9,D2:D9)合計金額は、「6,400」になります。=C2*D2+C6*D6+C8*D8「A2:A9」の範囲で「東京」、B2:B9の範囲で「りんご」となる列の積、「C列*D列」を返します。こちらの記事もご覧ください。⇒エクセルSUMPRODUCT関数で複数条件で抽出した数値を合計するINDEX、MATCHを組み合わせて複数列の条件で値を抽出エクセルINDEX関数とMATCH関数の複数条件で、OR(または)を使う場合は、1行または1列のセルの範囲で、AまたはBまたはC、以下複数の条件を優先順位で抽出したい時です。AND(かつ)を使う場合は、2つ以上の複数条件で、完全一致する値のみ抽出したい時です。INDEX関数とMATCH関数を使うと、複数列の条件でも値を抽出することができます。こちらの記事もご覧ください。コメントをキャンセルメールアドレスが公開されることはありません。*サイトエクセルINDEX関数とMATCH関数で、別シートまたは別ファイルにあるデータから値を検索して抽出する方法エクセルINDEX関数とMATCH関数で複数条件AND(かつ)で値を抽出!複数列もOKRECOMMENDこちらの記事も人気です。