• 締切済み

excelで複数条件を抽出して反映させる方法

sheet1 <基データの表> セルA3:登録番号 セルI3:使用先会社名  sheet2<sheet1を反映させvlookup設定で抽出した完成表> セルB2:登録番号 セルC2:使用先名称 現在、上記のようなセル設定をしており、 sheet2のセルC2にvlookup関数を設定し、B2に登録番号を入力すると、 sheet1の基データから条件を抽出し使用先名称を表示させています。 しかし、基データの登録番号には重複するものが何件かあり、 その場合は最初の値しか返さないので、間違ったデータが抽出されてしまうことがあります。 この問題を解決する方法はありませんか? (1)vlookup関数以外を使用することになっても大丈夫です。 (2)できれば、重複するものはsheet2に反映される時点で両方反映されるとよいのですが、それができなくても、重複していることがわかればよいです。 (3)登録番号以外をデータの抽出に使用することはできないので、これは変更できません。 以上、お手数ですがご教授くださると幸いです。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

>しかし、基データの登録番号には重複するものが何件かあり、 その場合は最初の値しか返さないので、間違ったデータが抽出されてしまうことがあります。 この問題を解決する方法はありませんか? 少し複雑な配列数式になりますが、1つの数式だけで複数の該当データを一覧表示することができます。 元データがSheet1のA3セル以下に入力されている場合、ご希望の登録番号に合致する複数のデータをC2セルから右方向に表示するなら、たとえばC2セルに以下のような関数を入力し、右方向に適当数および下方向にオートフィルすることになります。 =INDEX(Sheet1!$I:$I,SMALL(INDEX((Sheet1!$A$3:$A$100<>$B2)*100+ROW($A$3:$A$100),),COLUMN(A1)))&""

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

一例です。 重複した場合、★マークを付けるようにしました。 =IF(COUNTIF(Sheet1!A:A,B2),IF(COUNTIF(Sheet1!A:A,B2)>1,"★"&VLOOKUP(抽出式),VLOOKUP(抽出式)),"")

shantimaya
質問者

お礼

初心者の私にもとても単純明快でわかりやすく、早速試してうまくいきました。今後別のデータ作成にも利用させていただきます。どうもありがとうございました!

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

こんにちは! 外しているかもしれませんが・・・ ↓の画像で説明させていただきます。 とりあえず、B2セルに登録番号が表示されれば、D列にその番号の会社名を表示させる方法です。 Sheet1に作業用の列を使わせてもらっています。 作業列J3セルに =IF(A3=Sheet2!$B$2,ROW(A1),"") として、オートフィルで下へずぃ~~~!っとコピーします。 そして、Sheet2のD2セルに =IF(OR($B$2="",COUNT(Sheet1!$J$3:$J$100)<ROW(A1)),"",INDEX(Sheet1!$I$3:$I$100,SMALL(Sheet1!$J$3:$J$100,ROW(A1)))) という数式を入れ、オートフィルで下へコピーすると 画像のような感じになります。 とりあえず、Sheet1のデータは100行目まで対応できるようにしていますが、 データ量によって範囲指定の領域はアレンジしてください。 以上、参考になれば幸いですが、 他に良い方法があれば読み流してくださいね。m(__)m

shantimaya
質問者

お礼

ご丁寧にありがとうございます! これまで自分が考えたことのない方法でしたので、とても勉強になります。すぐにこのような発想が思い浮かぶなんて、本当にすごい。今後のデータ作成時に活用させていただきます。 どうもありがとうございました。

関連するQ&A

  • VLOOKUP機能を使用した複数データ抽出 Excel使用

    VLOOKUPでなくても構いませんが、この関数を使用すると抽出出来るデータ数は1個のみになりますね?  当然、そのセル内での設定ですので、単数データになりますが、 指定範囲の中に複数の重複しているデータもあるので、全部抽出したいです。 要するに複数のデータを抽出したいと考えてます。 裏技を教えていただきたいです。 宜しくお願いします。

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

    シート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 は複数の抽出なので駄目でした。   

  • エクセルのVLOOKUP関数で…(複数条件?の抽出)

    ●シート2、A列に部品正式名称、B列に部品略称の一覧表(部品の種類は約500点) ●シート3、A列に略称、B,C,D,E,F,G列と続けて寸法などの詳細を記した一覧表 があります。 ●シート1に検索一覧表として、B列(B3~B8)は項目、セルC3~C8にVLOOKUPでシート3の情報が抽出されるようにしてあります。 C1で略称を入力し抽出するのはOKなのですが、正式名称で入力しても同じようにシート3の情報を抽出するようにしたいです。 (IFを使って思いつく関数を組合わせてみたりしたのですが、うまくいきませんでした(TT) できたら関数で何か良い方法ありますでしょうか? 宜しくお願いします。

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

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

  • エクセルで、条件にあう複数の行を別のシートに抽出する

    《どなたか、お教え下さい》   エクセルで、条件にあう複数の行を別のシートに抽出してまとめる。 「sheet1」の下記の基本データを「sheet2」に「得意先」ごと「日付」の早い順にまとめたいのでが。関数を使ってできないものか、どなたかお教え下さい。「マクロ」や「Access」は使用したことがないので、関数を使ってやりたいと思いますが、できるものでしょうか。よろしくお願いします。 sheet1 番号 得意先 日付 商品名 商品詳細 金額 備考 1   A 2   B 2   B 4   D 5   E 6   F 2   B 3   C 5   E   A    B  番号  得意先   1   A      2   B   得意先名は、番号を入力することで表示されるように   3   C   関数「VLOOKUP」を使って表示させるようにしていま   4   D   す。    5   E   6   F  

  • エクセル 複数条件抽出について

    エクセル2013を使用しています。 データシートより複数条件に当てはまるデータを 別のシートへ必要な項目のみ抽出する方法(関数orマクロ)をお教え下さい。 データシート:A列からU列まで様々なデータが入力されている。 抽出条件:H列とN列 抽出する項目:C列・I列・M列・O列・Q列・R列・S列 (抽出する項目は増える可能性有) 複数条件の抽出はフィルタオプションで出来たのですが、 抽出が必要な項目を指定する方法が分かりませんでした。 宜しくお願いします。

  • 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の場合は売上金額を抽出させたくない。 このような場合の関数での数式を教えて欲しい。 お分かりの方があればお教え願います

  • 別シートに抽出

     データを別シートに抽出したい。 画像を参照して下さい。 シートの「一覧」を別シートへ関数を使って抽出したのですが、 思うような結果になりません。お教え下さい。 別シートに VLOOKUP(A3,'一覧'!$A$3:$E$36,2,1) VLOOKUP(A3,'一覧'!$A$3:$E$36,3,1) VLOOKUP(A3,'一覧'!$A$3:$E$36,4,1) VLOOKUP(A3,'一覧'!$A$3:$E$36,5,1)の関数をセルに入れてセル事に 抽出します。その時に別シートに A01・A02・A03・A03・A04・・・・ の順序で抽出したいのですが、うまく抽出できません。

  • Excel IDが重複するデータから値を抽出したい

    Excelで同じ商品IDが登録されたデータの中から一致する値を返したい。 商品IDと商品名を登録しているシート1と商品IDを入力し商品名をINDEX+MATCH関数で商品名を抽出し、商品の詳細の情報(ここでは含有物質と含有量)を登録するシート2がそれぞれあります。 シート2には商品IDと含有成分の物質名を登録する為、商品IDが同じなら1から連番を振る(COUNTIF関数)物質登録用のID2があります。 ここで抽出したい値は シート2を参照範囲として、商品IDを登録しているシート1で 例 IDが1で含有物質Aが登録されていたら、物質Aの含有量の値を抽出したい しかしINDEX関数、VLOOKUP関数で抽出しようとしても、シート2には同じ商品IDが複数登録されているので、一番最初に合致した値しか返すことができません。 重複した商品IDが登録されているデータから商品IDが1でかつ、含有物質Aが登録されていたら、その含有量の値を抽出したい場合、どのような関数を使えばいいでしょうか。 VLOOKUPは参照範囲の列を挿入してしまうと抽出範囲がずれてしまう為、INDEX+MATCH関数を使用しております。 すこしややこしいですが、ご教授頂けると助かります。 宜しくお願い致します。

  • excelで複数条件で抽出する

    excel VBAで質問です。(初心者レベルです) A列からZ列までデータがあり、オートフィルタでE列で条件に当てはまるものと、E列では条件外だが、Y列では条件に当てはまるものを別シートに抽出したいと思っています。 Sub Macro1()   With Worksheets("Sheet1")     .Range("A1").AutoFilter _       Field:=5, Criteria1:="*条件*"     .Range("A1").CurrentRegion.SpecialCells(xlCellTypeVisible).Copy _       Worksheets("Sheet2").Range("A1")   End With End Sub Fieldを変えて、E列、Y列それぞれはできるのですが、データが重複してしまいます。 重複分を削除するため、セル入力で連番を降って、重複するものを削除しようとしましたがうまくいかず。 なにかいい方法はないでしょうか。

専門家に質問してみよう