• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:複数のエクセルのファイルにおいて、共通する項目のみを抽出する方法を教え)

複数のエクセルのファイルから共通する項目を抽出する方法

このQ&Aのポイント
  • 複数のエクセルのファイルにおいて、共通する項目のみを抽出する方法を教えてください。エクセル初心者です。
  • データ1とデータ2の表を利用して、データ2(今年度の購入分)からデータ1(今月の購入分)のみを抽出することは可能でしょうか?実際はひとつひとつ抽出するには途方もない量のデータなので、知恵を貸していただけるととても助かります。
  • 確実に双方に入力されているデータは品名と購入店名のみなので、その二つの情報を元に、共通する項目を抜き出すしか方法がなさそうなのです。

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

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

NO.1です! 補足を読ませてもらいました。 hakkairoさんが仰っている、三つの問題点の最初の二つについてはまったく問題ないデータ量だと思います。 行数が万単位でもちゃんと表示されるはずです。 一つ気になるのが三点目です。 「品名コードと店名がまったく同じデータが複数存在する」ということなので前回のSheet2の作業列D2セルの式では 最初のデータのみしか抽出しませんので、結果に同じものが複数表示されても良いのであれば D2セルの数式を =IF(COUNTBLANK(A2:C2),"",IF(COUNTIF(Sheet1!E:E,A2&B2&C2),ROW(),"")) に訂正してみてください。 尚、最後にある >ちなみに、作業列2には数字が「0~4」までしか表示されていませんでした。 に関しては「0」という数値が出ること自体がおかしいですねぇ~! 数式の ROW() となっていますのでその行番号が表示されるはずです。 この件に関してはちょっと判りかねます。 この程度で解決できないかも知れませんが・・・ ごめんなさいね。m(__)m

hakkairo
質問者

お礼

遅くなりましたがありがとうございます! 作業列にはやはり0~4までの数字しか表示されませんでしたが、 抽出するものには数字が入るという判断材料とすることができたので、 フィルタをかけて数字が入っている項目のみを抽出しました。 本当に助かりました!

その他の回答 (3)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

分かりやすいようにデータ1をシート1に、データ2をシート2に貼り付けることにします。その上でお求めの表をシート3に作るとしてシート3のA1セルには次の式を入力してC1セルまでオートフィルドラッグします。 =IF(COLUMN(A1)=1,Sheet1!$A1,IF(COLUMN(A1)=2,Sheet1!$B1,IF(COLUMN(A1)=3,Sheet1!$D1,""))) A2セルには次の式をC2セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(Sheet1!$B1="","",IF(COLUMN(A2)=1,INDEX(Sheet2!$A:$A,SUMPRODUCT((Sheet2!$B$1:$B$5000=$B2)*(Sheet2!$C$1:$C$5000=$C2)*ROW($A$1:$A$5000))),IF(COLUMN(A2)=2,Sheet1!$B2,IF(COLUMN(A2)=3,Sheet1!$D2,""))))

hakkairo
質問者

お礼

遅くなりましたが回答ありがとうございます。 質問文に書いた表は仮のもので、実際の表とはだいぶ異なる部分があり、 回答者様に書いていただいた式の内容を完全に理解する能力が私になかったため、 式をそのまま入力するという形では対応することができませんでした。 今後、勉強して知識がつきましたら参考にさせていただきます。

noname#204879
noname#204879
回答No.2

[データ]→[フィルタ]→[フィルタオプションの設定]を勉強しませう。

hakkairo
質問者

お礼

遅くなりましたが回答ありがとうございます。 今回は急いでいたのでこのような形で質問させていただきましたが、 今後のために自分でも勉強を重ねようと思います。

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

こんばんは! 一例です。 質問は別ファイル(別ブック)になっていますが、↓の画像は別Sheetでやっています。 別ファイルでも方法はまったく同様です。 質問を読ませてもらうと商品はコードによって決まっているみたいなので、コードと購入店だけで判断できると思います。 両方のSheetに作業用の列を設けています。 Sheet1(データ1)のE2セルを =A2&D2 として、フィルハンドルの(+)マークでダブルクリック、またはオートフィルで下へずぃ~~~!っとコピーします。 Sheet2(データ2)のD2セルに =IF(COUNTIF(Sheet1!E:E,A2&C2)=1,ROW(),"") という数式をいれ、同様にオートフィルで下へコピー! 最後にSheet2のF2セルに =IF(COUNT($D:$D)<ROW(A1),"",INDEX(A:A,SMALL($D:$D,ROW(A1)))) という数式をいれ、列方向と行方向にオートフィルでコピーすると 画像のような感じになります。 こんなんで良かったのですかね?m(__)m

hakkairo
質問者

補足

詳しい説明ありがとうございます。 教えていただいた通りにやってみたところ、こちらの表では確かにできました。 が、実際のデータでは上手くできませんでした…何故でしょうか。 抽出できないデータがどうしても残ってしまうのです。 原因として考えられるのは下記の三点かと思うのですが… ・データ1のデータが多すぎる(100行以上) ・データ2のデータが多すぎる(1000行以上) ・品名コードと店名が全く同じデータが複数存在する ちなみに、作業列2には数字が「0~4」までしか表示されていませんでした。

関連するQ&A