【Excel】複数の条件に一致するデータの抽出

このQ&Aのポイント
  • 複数の条件に一致するデータを抽出する方法をExcelで教えてください。
  • ExcelのVLOOKUP関数を使用して、複数の条件に一致するデータを取得する方法を教えてください。
  • Excelで複数の条件に一致するデータを探す方法を教えてください。
回答を見る
  • ベストアンサー

【Excel】複数の条件に一致するデータの抽出

VLOOKUPの検索値が複数あるようなイメージで、それらに 合致するデータを求める関数はありますか? 例えば下記のようなデータがあり、「ランク=A」かつ 「級=2」の率を求めるような式です(この場合率は4.0です)。 このデータはテーブルとして別シートに作成し、元の シートにこのテーブルで求めた率をひっぱってきたいと 考えています。 説明が下手で分かりにくくて申し訳ありませんが、どなたか お分かりになる方、教えて下さい。よろしくお願いします。 ランク   級    率     A     1     4.1 A     2     4.0 A     3     3.2 B     1     4.0 B     2     3.8 B     3     3.0 ・     ・      ・ ・     ・      ・ ・     ・      ・     

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

ランクの左に列を挿入 =B2&C2 の様にしてランクと級の結合データを作成して、検索のキーにする。 =IF(OR(A1="",B1=""),"",VLOOKUP(A1&B1,表の範囲,4,FALSE)) の様に計算

tenmaru
質問者

お礼

ありがとうございます。率を表すことができました。 ほんの少しの工夫で便利になるのですね、感心です!

その他の回答 (4)

  • ja7awu
  • ベストアンサー率62% (292/464)
回答No.5

「ランク」という見出しが、セルA1にあるとして、 データに「ランク」に対する「級」が、同じデータが無いとすると 「ランク=A」かつ「級=2」の率を求めるような式は、 =SUMPRODUCT((A2:A10="A")*(B2:B10=2),C2:C10) で如何でしょうか。

tenmaru
質問者

お礼

回答ありがとうございます。SUMPRODUCTは便利な機能ですが、 率の欄にはどんなランクと級の組み合わせがきても、それに 合致する価を求める式をもってきたいので、難しいですね。 No.1さんを参考にさせていただこうと思います。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.4

配列を使用して、以下の方式は如何でしょうか。 =SUM(IF(A2:An="a",IF(B2:Bn=2,C2:Cn))) 入力の最後にshift+Ctrl+Enterとして下さい。

tenmaru
質問者

お礼

回答ありがとうございます。 このような方法もあるのですね、勉強になりました。

  • taocat
  • ベストアンサー率61% (191/310)
回答No.3

こんにちは。 Sheet2 (1行目は見出し)   質問の変換テーブル(A1-C50) Sheet1 (1行目は見出し)   A列に、ランクを入力   B列に、級を入力   C列に、Sheet2の変換テーブルの値を求める C列に次の式をセット =SUMPRODUCT((Sheet2!A2:A50=A2)*(Sheet2!B2:B50=B2)*Sheet2!C2:C50) 以上です。  

tenmaru
質問者

お礼

回答ありがとうございます。SUMPRODUCTは便利な機能ですが、 率の欄にはどんなランクと級の組み合わせがきても、それに 合致する価を求める式をもってきたいので、難しいですね。 No.1さんを参考にさせていただこうと思います。

  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.2

こんにちは。maruru01です。 複数条件の方法にはいろいろありますが、データベース関数を利用した方法を。 表がSheet2にあるとします。 元のシートは、 A1:「ランク」 B1:「級」 A2:「A」 B2:「1」 というようにします。 (つまり1行目が項目名で、2行目に検索値) こうしたら、 =DGET(Sheet2!A:C,Sheet2!C1,A1:B2) で率が表示されます。 なお、検索結果が複数になる場合(例えば、ランク"A"の級"1"が複数ある)は、エラーになります。

tenmaru
質問者

お礼

こんな方法もあるのですね。ただ検索結果が複数に なるケースも多いので残念です。 勉強になりました、ありがとうございます。

関連するQ&A

  • Excel 複数の項目合致するデータを抽出したい

    是非、よろしくお願いいたします。 以下の状況です。 sheet1には A、B、C、Dという4列があります。データは1000行くらいです。 sheet2には A、B、C、Eという4列があります。データは2000行くらいです。 この状況で、sheet1のD列の右に新しい列を作り、 「sheet1の(例えば)A1、B1、C1と合致する行のsheet2のE列データ」を、 sheet2のABC列範囲を検索して抽出したいのです。 項目が一つであればvlookup関数でできるものを「複数項目に合致」のため上手くいきません。 この3列のデータを結合して一つにしてみましたが、結合後のデータが16桁以上のため末尾が「0」になってしまい、正確に検索できません。 何か上記を可能にする方法はないでしょうか? よろしくお願いいたします。

  • エクセルで条件に合わせて複数データを抽出したい

    シート1に基本データ(基データ)があり、シート2のセル内に条件を入れて、該当のデータをシート1から引っ張りたい。 具体的には、シート1に基本データ  ナンバ- 1 1 2 2 2 3 4 4 4  該当データ A B C D E F G H I シート2に 条件内容 1を入れてA B (複数データ)      2を入れてC D E       3を入れてF -----と、こんな具合になりたいのですが?   VLOOKUP は複数の抽出なので駄目でした。   

  • 【Excel】一致するデータの検索

    Excel2003を使用しています。 Sheet1のB列の値がSheet2のA列に入力されている値と一致したら、Sheet1のC列とD列の値をSheet2のC列とD列に表示させたく、VLOOKUP関数を使用したところ、Sheet1のB列とSheet2のA列のデータの並び方(順序)が同じではないためか、VLOOKUP関数ではできませんでした。 こういう場合、マクロで処理することは可能でしょうか?可能であれば、どのようにコードを記述すればいいでしょうか? Sheet1のデータは4行目から、Sheet2のデータは6行目から入力されています。 よろしくお願いします。

  • Excel2003 複数の条件を満たすデータを抽出する関数を教えて下さ

    Excel2003 複数の条件を満たすデータを抽出する関数を教えて下さい! 下のデータで、A列でB、B列で赤を選んだ人は「みかん」という「みかん」を抽出する関数を教えて頂けませんでしょうか? データシートとは別に集計シートを作成しています。 お忙しい中恐れ入りますが、ご教示下さいますようお願い申し上げます。。。 ●データ A B C 1 A 赤 みかん 2 B 赤 りんご 3 C 白 いちご 4 B 青 いちご 5 D 赤 みかん 6 A 青 みかん 7 C 黄 りんご 8 E 赤 バナナ

  • EXCEL複数シートでの商品データを振り分けしたい

    【目的】エクセル関数を使用して、複数シートを対象に商品名によってデータを振り分けしたいです。 複数シートに検索対象を広げる事が出来ずにとても困っています。お力を貸してください。 過去に商品データの振り分け質問がありましたので、そちらを参考に作成させていただきました。 http://okwave.jp/qa/q7843035.html 上記URLの質問では一つのシートに対し、商品データの振り分けをされる形でしたが、 これを複数シートを対象に商品データの振り分けがしたいのです。 IFを複数使用し、複数シートを指定してもエラーでうまく動きません。 =IF($A3="","",VLOOKUP($A3,Sheet1!$A:$D,MATCH(B$2,Sheet1!$A$1:$D$1,0),FALSE)) &IF($A3="","",VLOOKUP($A3,Sheet2!$A:$D,MATCH(B$2,Sheet2!$A$1:$D$1,0),FALSE)) 何かよい方法はありませんでしょうか? 何卒よろしくお願い致します。m(_ _)m

  • Excel2007でのデータ抽出

    前任者が作ったExcelでの給料計算表を使用していますが、先日そこに金種計算表を組み込めないかと言われました。 当方VBAなどは全くの初心者です。 VLOOKUP関数を使ってデータテーブルから金額を読み込み金種計算が出来るようにはしてみたのですが、データテーブルを更新すると金種計算表にある数式がエラーを吐いてしまいます。 金種計算表には一行目から =IF(B4="","",VLOOKUP(B4,テーブル!D4:BG4,10)) と関数を入れてあります。 B4は氏名欄です。 その際にはちゃんと金額が表示されていますが、入力フォームからデータテーブルを更新すると =IF(B4="","",VLOOKUP(B4,テーブル!#REF!,10)) となってしまいます。 金額を手入力すればいいのですが、全社員分となると膨大な量になってしまいます。 なんとか自動で抽出出来ないものでしょうか。 お知恵をお貸しいただければ幸いです。 稚拙な説明ではありますがよろしくお願いします。

  • EXCEL2003で、Vlookupの検索で複数ヒットした場合全て抽出

    EXCEL2003で、Vlookupの検索で複数ヒットした場合全て抽出したいんですが、可能ですか? <sheet1>   A列   B列 1 A1000 1234 2 A2000 2345 3 A3000 3456 4 A1000 7777 5 A4000 4567 6 A1000 8888 <sheet2> B1に関数を入れて、   A列   B列 1 A1000  1234・7777・8888 のように表示させたいんです。 過去質問を確認すると、imogasi方式や、オートフィルタを使用するとありましたが、 imogasi方式はいまいち理解ができず(っというか、有効な手段を見つけることができませんでした) オートフィルタは使用上、今回は有効な手段ではありません。 また、Vlookupには拘りません。他の関数や、複数の関数を組み合わせても大丈夫です。 関数を使ってできるようであればご教示お願いします。 (複雑な式になっても構いません) よろしくお願いします。

  • Excelで複数条件を満たすデータを抽出

    以下のような場合の、データ抽出方法を教えてください。 Sheet1 "計画”, Sheet2 "実績”があります。 それぞれのSheetの A~Dには、共通列項目である ”都道府県””都道府県コード””品目””品番” が設定されています。 このふたつのSheetをまとめて、項目順に”計画”データの下に”実績”データがくるようなSheetを作りたいのですが、上記4つの条件が全て共通なデータを、関数等と使って抜出すことはできるのでしょうか? If、VLOOKUP、And、”名前をつける”などを組み合わせて、いろいろ考えてみたのですが、複数条件を満たす結果の抽出ができませんでした。 宜しくお願いします。

  • Excel2003、配列から、複数の条件一致する行のデータを取り出す方

    Excel2003、配列から、複数の条件一致する行のデータを取り出す方法 配列は最大で10行、10列程度ですが、このデータはリアルタイム(0.5秒間隔)で更新されますので、 分類等はできません。 A列のデータがZ1のセルのデータと一致し、かつ、B列は、特定の”文字列”と一致し、かつ、C列は数量で、0より大きい(負のデータは無いが、""はあり得る)という条件に合致した行があったら、その行のD列の値をZ2のセルに格納したい。 条件に合致する行は複数あり得るが、そのときは最初に条件が合致した行のデータが必要。 いくつかの関数を調べましたが、つまづいています。

  • 【Excel】 複数条件で抽出する。

    sheet1 A1に銀行名(漢字)、 B1に支店名(漢字)を入力すると、 C1に銀行コード、D1に支店コードが表示されるようにしたいのです。 sheet2 に銀行名と銀行コードの入った表があります。 sheet3には銀行コードと支店名、支店コードの入った表があります。 C1の銀行コードはVLOOKUPで拾うことができたのですが、 D1の支店コードは、銀行コードが一致していているものの中から支店名の一致している物を探すことになるので、この式が分かりません。 どのような関数で支店コードを表示できるでしょうか。

専門家に質問してみよう