• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセルVBAについてご教示ください。)

エクセルVBAでシート1とシート2をマッチングする方法

このQ&Aのポイント
  • エクセルVBAを使用すると、シート1とシート2のデータをマッチングすることができます。
  • シート1には複数のデータが記載されており、シート2には一致するデータを入力します。
  • マッチングされたデータはシート3に抽出されます。エクセルVBAを使用することで、簡単にデータの整理ができます。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

フィルタオプションを使えばよいと思います。 Sub TestMacro1() Dim ListRng As Range Dim CriteRng As Range Dim TargetRng As Range 'セッテング Set ListRng = Worksheets("Sheet1").Range("A1:C10") With Worksheets("Sheet2") Set CriteRng = .Range("A1", .Cells(Rows.Count, 1).End(xlUp)) End With Set TargetRng = Worksheets("Sheet3").Range("A1")  ListRng.AdvancedFilter _  Action:=xlFilterCopy, _  CriteriaRange:=CriteRng, _  CopyToRange:=TargetRng, _  Unique:=False   Set ListRng = Nothing Set CriteRng = Nothing Set TargetRng = Nothing End Sub

kazzsnow
質問者

お礼

ありがとうございます。 ちなみに、 Dim ListRng As Range Dim CriteRng As Variant Dim TargetRng As Variant ですかね? で、追加で質問ですが、 フィルタオプションで指定される場合、 いわゆる「文字列を含む」で検索されるしかないのでしょうか。 試しに、シート1のfield1に A AA AAA と入力し、 シート2の検索条件を A だけにしても、検索結果のシート3には A AA AAA これらすべてが表示されます。 「~に一致する」の条件を付帯することはできますか? なんどもすみません。

kazzsnow
質問者

補足

下記追加質問の後に解決しました。 "="を足せばよかったんですね。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルでこんなことできますか?

    エクセルで作成した表の集計について悩んでます。 無理かもしれないと思いつつ質問してます。 皆様の知恵をお貸しください。 よろしくお願いします。 シート1:果物 A   B  C   D   F ・・・      H12     H13     H14 1 1位 なし  1.38 りんご1.47  くり 5.46 2 2位 りんご 1.19 なし 1.33  メロン3.25 3 3位 メロン 1.12 くり 1.22  みかん2.55 4 4位 みかん 1.10 メロン1.01  なし 1.66 ・ ・ ・ ・ シート2:魚 A   B  C   D   F ・・・      H12     H13     H14 1 1位 さば  1.38 さんま1.47  かつお 5.46 2 2位 さんま 1.19 あじ 1.33  さんま3.25 シート:集計 果物   A   B   C   D   F ・・・        H12     H13     H14 1メロン  1.12 3位  1.01 4位   3.25 2位 2なし   1.38 1位  1.33 2位   1.66 4位 魚 1 さんま 1.19 2位  1.47 1位   3.25 3位 2    シート:集計のような表を作成すること可能ですか?    関数で作成すること可能ですか?とりあえず    VLOOKUPで数値の部分はとってますが。。そのつど条件を    変えないといけないので大変面倒です。他の方法とかありますか?    教えてください。よろしくお願いします。

  • エクセル関数 データの抽出について

    エクセル2010 重複データの抽出。 重複データの抽出方法をご教示ください。 抽出先はシート1のA列A3~抽出データの分だけ リストはシート2のB2:AB32まで フィルターオプションなども使ってみたのですが どうも上手くいきません。 どなたか知恵をお貸しください。 方法はできれば関数だといいのですが(データが増えてもいいように) できなければ他の方法でもいいです。 VBAなどは全くの初心者なので出来れば避けたいのですが… シート2     A    B   C    D~AB32 1  "" 2 いちご ばなな いちご りんご 3 みかん いちご ばなな いちご 4 りんご ばなな いちご みかん 5 みかん いちご ばなな りんご 6 ばなな ばなな りんご いちご : : 32 シート1(重複データなし)  A 1  "" 2  "" 3 いちご 4 みかん 5 りんご 6 ばなな 7 : : 抽出リストのデータはシート2のB2:AB32にぎっしり入っています。 宜しくお願い致します。

  • エクセルで納品書作成

    エクセルで納品書を作成しています。 まず、『Sheet1』に受注一覧表があります。    A    B     C      D    E   F 1 受注ID   顧客    品名    単価   数量  合計 2 100100  あい商店   みかん   150    4   600 3 100100  あい商店   りんご   150    2   300 4 100100  あい商店   ばなな   200    1   200 5 100101  (株)うえ    みかん   150    4   600 3 100101  (株)うえ    りんご   150    2   300 4 100101  (株)うえ    ばなな   200    1   200 次に、、『Sheet2』に納品書があります。 セルA1に受注IDを『100100』と入力すると、 自動的に、    A    B    C   D   5 品名    単価   数量  合計 6 みかん   150    4   600 7 りんご   150    2   300 8 ばなな   200    1   200 と表示されるようにしたいのですが・・・。 セルA6~A8に =IF(ISBLANK($A$1),"",VLOOKUP($A$1,Sheet1!$A$1:$F$9997,3)) セルB6~B8に =IF(ISBLANK($A$1),"",VLOOKUP($A$1,Sheet1!$A$1:$F$9997,4)) セルC6~C8に =IF(ISBLANK($A$1),"",VLOOKUP($A$1,Sheet1!$A$1:$F$9997,5)) 入力したのですが、↓↓こうなっちゃいましたo(;△;)o    A    B    C   D   5 品名    単価   数量  合計 6 りんご   150    2   300 7 りんご   150    2   300 8 りんご   150    2   300 至急、助けてください(/_<。)

  • VBA初心者です。

    VBA初心者です。 日付順に並べたいのですが、どのようにしたらいいのでしょうか。 【エクセル】日付順に別シートに並べるやり方を教えてください。 エクセルsheet1に下記の情報があります。 B(名前) C(記号) E~H(日付) 5 ばなな a 4/2 5/3 6/6 6 みかん b 4/8 5/7 6/6 7 りんご c 5/1 6/8 7/9 ・ ・ ・ ・ 下にどんどん続きます。 sheet2 (c.5)くらいから日付、名前、記号 4/2 ばなな a 4/8 みかん b 5/1 りんご c 5/3 ばなな a 5/7 みかん b 6/6 ばなな a 6/6 みかん b 6/8 りんご c 7/9 りんご c ・ ・ ・ 下に続きます。 このようにsheet2に日付順に並べつつ、横の情報もそのまま並べたいです。 (同じ日付はあります) sheet1で日付がたて1列であればできるのですが、 横にもたくさんある中からの抽出はどうしてもできませんでした。 よろしくお願いいたします。

  • マクロで商品ごとの並び替えで一定の数を超すと改行

    (sheet1) A    B 1 りんご   2 2 ばなな 6 3 りんご 3 4 りんご 1 5 ばなな 2 6 ばなな 4  ↓ (sheet2)   A B C D E F 1りんご 2 りんご 3 りんご  1 2ばなな  6 3ばなな 2   ばなな  4 4 5 6 上記のように、sheet1の表がsheet2に転記され さらに、sheet1のB行の個数がsheet2で足して6以下は3列で転記され 6以上になると、次の行に転記される。 ようなマクロを作りたいのですが、教えていただけないでしょうか。

  • エクセル教えて下さい。

    教えて頂きたいのですが。 指定したものだけを残したいのですが全然わかりません。 仕事でデータ量が多くて一括で操作したいのですが。 1シート A りんご 2 赤 B ばなな 3 黄 C とまと 4 赤 D なすび 2 紫 質問 AとCの行を残し他は削除したいのですが、どうしたらいいですか? 1シート A りんご 2 赤 C とまと 4 赤 宜しくお願いします。

  • エクセルVBA シート1からシート2へ転記したい

    シート1のデータはそのままで、 シート2に編集して転記したいです。 シート1にはA列からI列までデータが入っています。 行数は都度変わりますがデータは3行目から始まり 大体500行くらいです。 転記方法は シート1のD列→シート2のA列 シート1のE列→シート2のB列 シート1のF列→シート2のC列 シート1のC列→シート2のD列 でシート1のD列の値が同じ場合は 転記先のシート2の行数は増やさずにシート1のC列の値を 同じ値のF列内にカンマでつないで転記したいです。 でそのつないだ合計数をシート2のE列に表示したいです。 イメージ C  D    E     F ------------------------ A1 みかん 国内 Sサイズ A3 みかん 国内 Sサイズ D6 みかん 国内 Sサイズ D9 りんご 国内 Mサイズ G7 りんご 国内 Mサイズ F5 バナナ 海外 Lサイズ G1 バナナ 海外 Lサイズ A2 いちご 国内 Sサイズ D8 いちご 国内 Sサイズ F3 いちご 国内 Sサイズ H2 いちご 国内 Sサイズ   ↓ A    B    C      D     E ------------------------------------------- みかん 国内 Sサイズ A1,A3,D6   3←3個 りんご 国内 Mサイズ D9,G7     2←2個 バナナ 海外 Lサイズ F5,G1     2←2個 いちご 国内 Sサイズ A2,D8,F3,H2  4←4個 上記例の場合は元データは11行ですが編集後は4行です。 配列は自力で作成できないので考え方を教えていただきたいです。 構文をそのまま書いていただいても大変助かります。 Do~LoopかFor~Nextで上から順最終行まで処理で シート1からシート2へ転記する構文をかいて D列の値が直前に処理した値と同じ場合は 転記はしないでC列の値を変数1に代入し シート2の該当行のD列も変数2に代入し 変数1&","&変数2で対象行のD列に転記と考えましたが うまくできませんでした。 またシート2のE列の求め方ですが、上記変数1,2に代入した後に 変数3=変数3+1とかの文でカウントし、 その値を転記すればいいのでしょうか? すいません。今日1日頑張ってうまくできず 上手く説明できません。 よろしくお願いします。

  • Excelの関数

    まず、Excelの関数ボタンを押すと毎回強制終了させられるのですが、直せますか? それから、質問です。 たとえば、sheet2のC列の(魚屋さん)D列(500円)をsheet1のA1(魚屋さん)と入っている行のC1にsheet2のD列の500円を入れるようにしたかったので、VLOOKUPを使って入れるようにしたのですが、コピーをして、別のセルに他の項目(八百屋さんとか)の時も同じようにしようと思ったら、sheet2に同じ項目がないのに魚屋さんの金額が出てしまいます。 項目がないときにsheet1のC1に何も記入されずにする方法を教えてください。 私はsheet1のC1に if(A1=””,””,VLOOKUP(A1,'sheet2'!A1:E10,4))にしました。他にあれば教えてください。 よろしくお願いします。

  • エクセル関数

    エクセル関数について下記のような表があります。 A   B    C    D    E F     12/1  りんご  9.5kg 12月度 りんご 48.0kg 12/1  みかん  5.0kg 12月度 みかん 25.0kg 12/1  ばなな 5.0kg 12月度 ばなな 25.0kg 12/2  りんご 9.5kg 12/2  みかん 5.0kg 12/2  ばなな 5.0kg 12/3  りんご 9.5kg 12/3  みかん 5.0kg 12/3  ばなな 5.0kg 12/4  りんご 9.5kg 12/4  みかん 5.0kg 12/4  ばなな 5.0kg 12/5  りんご 9.5kg 12/5  みかん 5.0kg 12/5  ばなな 5.0kg F2列の式は、SUMIF($B:$B,E2,$C:$C)で、F3,F4はF2の式を下フィルしています。質問内容はF2の小計が本来47.5kgとなるべきはずが、48kgとなってしまうのは何故かということです。ご教示の程 よろしくお願いします。

  • Excelのピボットテーブルのデータ統合の詳細

    ピボットテーブルで支店ごとにシートを分け、データの統合で総合計を出しています。 統合したシートでは下記のようになっているのですが A B C D F 2 りんご みかん もも めろん 3 4月 106166 101325 198822 173844 4 5月 153010 110551 107573 218124 5 6月 151545 98240 77057 175297 6 7月 161000 100350 89016 77553 7 8月 ・ ・ ・ ・ 8 9月 ・ ・ ・ ・ 9 10月 ・ ・ ・ ・ これを例えばB4の5月のりんごの合計のところでダブルクリックすると 新たにシートが出来て、 行 列 値 H20.5 りんご 5135 H20.5 りんご 4120 H20.5 りんご 3339 H20.5 りんご 6214 H20.5 りんご 7333 H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ H20.5 りんご ・ こんな感じで各シートの詳細が出ていくるのですが これではどこの支店のものかわかりません。 これをシート名を出てくるようには出来ないでしょうか? 項目を例えば、りんごの部分をりんご(東京)とすることも考えたのですが それだとデータ統合ができません・・ お知恵をお貸し下さい。

このQ&Aのポイント
  • パソコンとプリンターを接続するためのセットアップ方法を紹介します。
  • 無線LANでルータとパソコンを接続し、イーサネット接続でプリンターをセットアップする方法について説明します。
  • Windows10を使用してパソコンとプリンターをシームレスに接続するための手順を解説します。
回答を見る

専門家に質問してみよう