• ベストアンサー

エクセルで複数の条件を満たした値を返す関数を教えてください。

エクセルで複数の条件を満たした値を返す関数を教えてください。 (画像を添付しました) 左の表(A1からD9)のデータを右の表でIDと製品を選択すると 会社名、名前が抽出するような関数を教えてください。 INDEXやMATCHなど使ってみたんですが、組み方が悪いのかうまく抽出できませんでした。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.3

No.1です! たびたびお邪魔します。 No.2さんへの補足を読ませてもらうと IDも商品名にも重複があるみたいなので 作業列なしに一気にという方法はかなり難しいと思います。 どちらか一方に重複がなければ配列数式で可能だと思いますが・・・ 色々考えても良い案が出てきません。 前回同様に作業列を使うのが一番簡単なのではないでしょうか? そして、作業列が目障りであれば非表示にする方法もあるかと思います。 尚、前回の数式はオートフィルで下へコピーするのを考慮していませんでしたので、 今一度オートフィルで下へコピーしても大丈夫の数式を書いておきます。 前回の画像の表でI2セルを =IF(COUNTBLANK($G2:$H2)>0,"",INDEX(B$2:B$100,MATCH($G2&$H2,$E$2:$E$100,0))) という数式に訂正してください。 (100行目まで対応できる数式にしています。) この程度の方法ですが あまりお役に立たないようでごめんなさいね。m(__)m

x_kaeru_x
質問者

お礼

2回も回答ありがとうございます。 やはり作業列を使うのが確実なんですね。欲を出しすぎました(汗) また、コピー対応の数式まで教えていただき本当に助かります。 こちらを参考にさせていただきます。 ありがとうございました。

その他の回答 (2)

noname#187541
noname#187541
回答No.2

こんばんは。 添付の画像を見る限りIDは重複していないようなので、IDを使ってVLOOKUP関数で出せるのですが、実データではIDに重複があるのでしょうか。 また、IDと製品名の組み合わせに重複はありませんか? とりあえずIDには重複があるとして考え、製品名との組み合わせでは重複がないとします。 H2に =DGET($A$1:$D$9,B1,$F$1:$G$2) と入れて、I2にコピーしてください。 ただし、検索条件を満たすものがない場合は「#VALUE!」のエラーになるので、エラー表示をしたくない場合は、IF関数と組み合わせるなどのエラー処理をしてください。 あと、関数ではなく「フィルタオプションの設定」という機能を使っても出すことが出来ます。参考までに。

x_kaeru_x
質問者

補足

回答ありがとうございます。すみません、説明不足でした。 IDは重複があります。IDと製品名を組み合わせると重複が無いというデータになります。 あと抽出する側の表ですが、複数行あります。 教えていただいたDGETで1行目は抽出は出来たのですが、2行目からがエラーになってしまいます。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんばんは! 一例です。 IDに重複はないものとします。 ↓の画像のように作業用の列として、E列を使わせてもらっています。 E2セルを =A2&D2 としてオートフィルでずぃ~~~!っと下へコピーします。 そして、I2セルに =IF(COUNTBLANK($G$2:$H$2)>0,"",INDEX(B$2:B$100,MATCH($G$2&$H$2,$E$2:$E$100,0))) という数式を入れ、J2セルまでオートフィルでコピーします。 これで↓の画像のような感じになります。 以上、参考になれば良いのですが 他に良い方法があれば読み流してくださいね。m(__)m

x_kaeru_x
質問者

補足

回答ありがとうございます。 教えていただいた関数で抽出できました。抽出する表の2行目以降もできたんですが、 欲を言うと、左の表に作業用の列を使用しないで抽出する方法があれば教えていただきたいんですが。

関連するQ&A

  • エクセルで複数条件で値を検出する方法

    質問です。 添付した上の表がメインで下の表が別シートにあります。 エクセルで別シートからメインの表に今日と一週間前の15時と18時の数値を検出したいと思ってますがうまく出来ません。 最初にvlookup関数を使用しましたが、今日と一週間前の列を参照までは出来ますが時間の指定が出来ず11時の値が検出されてしまいます。 indexとmatchを組み合わせれば出来るという質問応答があったので参考にしてみましたが うまく関数を作れず難航してます。 メインの表のD3、F3にどのような関数を入れればうまく別シートから条件にあった値を検出する事が出来るのでしょうか? よろしくお願いします。

  • エクセルの関数で2つの条件に合うものを探す。

    エクセルの関数で下記のことをしたいのです。 表(1) T>=0.6  0.6>T>=0.3  0.3>T>=0.15 U<2   A     B       C 2<=U<3  B     B-C     D 3<=U<4  C      C      D 4<=U<6  D     C-D     D 6<=U    E      D      D 別の表(2)に U   T         1.5  0.3         0.9  0.8             5.9  0.13         ・   ・         ・   ・ とあります。 そのためUの値とTの値で表(1)のAからE値を抽出し別の表にAからEを表示したいのです。エクセルの関数(IF,AND,LOOKUP等)を試してみたのですがうまくいきません。できるだけエクセルの関数のみで、よい方法があれば教えてください。よろしくおねがいします。     

  • エクセル関数でデーターベースから値を抽出するには・・・

     エクセル関数のDGETはデータベースから1つの値を抽出しますよね。でも条件を満たす値が複数ある時には「#NUM」が返されて抽出出来ない。条件を満たす値を複数返すような関数は無いのでしょうか ?   住所、氏名、年齢、職業、のデータの中で「"東京*"」にすむ人の名前を抽出しなさい。「"東京*"」に住んでいる人がいない場合は空白セルを返すようにする、と言った内容です。   どなたか教えて下さい。

  • エクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。

    皆さんどうか教えてください エクセルにおいて複数の条件から抽出することができる関数(式)を教えてください。 400  70円  ad   6個 700  60円  da 7個   100  30円 ad   9個 400  50円  ad   10個 などの表で、400で70円でadなものの数を求める 条件で数値を求めるにはどうすればいいのでしょうか また条件にあったデータに6個などの数値をかけて合計した数値を求めるにはどうすればいいのでしょうか 関数でできる方法をお願いします。 あと”なおかつ”などの条件を行う関数も教えてください どうかヨロシクお願いします。

  • excel2003 複数条件検索後の合計を表示

    こんにちは。 excel2003で在庫表を作成しているのですが複数検索で一致した項目の積の返し方が判らないので教えて頂きたいです。 色々試しましたが関数のネストが上手く出来ず困っています。 VBAは使えません。 ご面倒ですが関数で教えて頂けたら有難いです。 勉強不足で申し訳ないです。 画像の左のシート・商品の出庫(入庫は同じシートをコピーして使っています) 画像の右のシート・商品の在庫 画像の右シートには何とか条件検索の抽出が出来ましたが、同じ商品で同じカラーの合計数量を返したいです。 右シートには次の関数を入力しています。 =IF(OR($A$3="",COUNTIF(左のシート!$E$3:$E$500,$A$3&B3)=0),"",INDEX(左のシート!$D$3:$D$500,MATCH($A$3&B3,左のシート!$E$3:$E$500,0))) 説明不足で判りづらいかもしれませんがよろしくお願い致します。

  • EXCELで複数条件で値を求める方法を教えて

    EXCELで下記の複数条件で値を見つける方法を教えて下さい。 A条件、B条件、C条件で条件が一致する時に日付と数量の表より値を求める。

  • エクセル 関数 複数条件

    お世話になります。 エクセル2013ver.を使用しております。 複数条件の関数(COUNTIF DCOUNTA)等について教えてください。 ■行いたい事■ 添付画像左側リストより、 (1)みかん&たまごを購入した人の買い物リストを抽出したい (2)みかん&たまごを購入した人数をカウントしたい 以上、2つの事を行いたいのですがうまくできません。 良い方法があればご教示お願い致します。 近しい事をされているのも見受けられましたが、 行き詰まってしまいました。

  • EXCELの関数で複数条件の抽出方法

    エクセルの関数について教えてください。 VLOOKUPで複数条件を抽出したい。 以下の様に出来ればと思いますが、数式が分かりません。 売上データーの中から複数の条件に一致したものだけを抽出したい。 例) 商品が1,2,3,4,5,6,7,8,9,10と種類が100あるとします。 売上先A,B,C,D,E,F,G,と100の客先があるとします。 その中から、商品1と売上先Aの場合はA-1と売上金額のデーターを抽出させて、商品1と売上先がDの場合はD-1と売上金額を抽出させたい。但し、商品1と売上先Bの場合は売上金額を抽出させたくない。 このような場合の関数での数式を教えて欲しい。 お分かりの方があればお教え願います

  • Excelの関数で

    お願いします。 Index関数とMatch関数を使用して表の中の値を求めようとしましたが、 検索行が複数あるため、うまくいきません。 検索する列は1列(a,b,c)ですが、検索行(あ、い、う~)が複数になっています。 更に空白もあります。 こんな感じ↓です。 ---------------------   あ  い   う   え      お   か ---------------------    a  10  20  30 b  40  50  60 c  70  80  90 --------------------- こういった場合にはどんな関数を使って一致する値を求めたら良いのでしょうか? 大変困っております。よろしくお願いします。

  • Excel:複数条件の値代入について

    Excelで、複数条件をキーにした値の代入方法を教えて下さい。 言葉ではお伝えづらいので添付の表をご確認頂きたいと思います。 A表(sheet1)には各人員の、月毎の金額、合計値が入っています。 ここから別シートのB表(sheet2)に、値の入っている最終月を代入したいのですが、 条件としては3種類あり、 1.値が12月まで埋まっている場合は「12」を代入 2.値が途中まで埋まっている(その後は空欄)場合は、埋まっている最終月を代入 3.【合計】の欄に0が入っている場合は、ブランクを代入 このような条件になっております。 関数で「if」を繰り返していくと、【合計】含めて13回繰り返す事になるため、 何かすっきりとできる手法があれば、ご教授頂けると有り難いです。 宜しくお願い致します。

専門家に質問してみよう