• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:-excel-違うブックの文字列を含む行の抽出)

Excelで違うブックの文字列を含む行の抽出方法と価格一括変更について

このQ&Aのポイント
  • 商品の価格を一括で変更する方法と、別のブックの文字列を含む行を抽出する方法について教えてください。
  • ブックAには7000行、ブックBには1000行のデータがあります。関数やマクロを使用して、ブックAの商品価格をブックBの値下げ後価格に一括変更する方法を教えてください。
  • また、ブックBのIDと合致するセルを持つブックAの行を抽出し、別のブックにまとめる方法も教えていただきたいです。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7941)
回答No.3

IDがブックBにあればそれを採用,無ければブックAを採用します 準備: ブックCに完全なIDの一覧を作成する(手順が判らなければ別途ご質問) ブックAのIDがパーフェクトなら,それをコピーしてくるだけです。 手順: ブックA,B,Cを開いて並べておく ブックCのF列に F2: =VLOOKUP(A2,IF(ISERROR(MATCH(A2,[bookB.xls]シート名!A:A,0)),[BookA.xls]シート名!A:F,[BookB.xls]シート名!A:F),6,FALSE) と記入し,リスト下端までコピーして埋める 改めてF列をコピーし,その場で形式を選んで貼り付けの値のみ貼り付けて値化する。 #参考 ご利用のエクセルのバージョンが明記されていませんが,Excel2007以降を使っているなら,IFERROR関数を使ってもう一段簡単な数式に出来ます。計算のリクツは同じなので特に解説しませんが,必要に応じて勉強してみてください。

rei33235
質問者

お礼

お礼が遅れてしまって大変申し訳ありません。keithinさんの方法でやってみたのですが、データが重すぎたのか記述を間違ったのか、ブックの内容が消えてしまいました。保存はしなかったので問題はなかったのですが。結局は商品の値段変更は別の方法ですることになりました。VLOOKUPは今後自分でできるように、勉強していきたいと思います。どうもありがとうございました。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

こんな課題はエクセル関数のVLOOKUP関数(エクセルを使う人の常識の関数)のFALSE型で出来るのではないか。 他ブック参照という特徴があるにしても。 エクセルの関数の本も読まず、WEBも照会しておらず、スクールにも通ってないのでしょう。 Googleででも「エクセル VLOOKUP関数」で照会すれば、膨大な数の記事がある。 実例つきのものをさがして、どういう関数かまず勉強すること。 それから「見つからない場合のこと」、「検索表が他ブックにある場合など」を勉強のこと。 VBAでも出来るが、質問者のようでは、コードを回答者に作ってくれと言うに等しい(丸投げ)。 Googleで「エクセル VLOOKUP 他ブック参照」など勉強のこと。

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

こんばんは! VBAでの一例です。 それぞれのデータは各BookのSheet名が「ブックA」の「商品データ」・「ブックB」の「価格変更データ」にあるとします。 「ブックA」を一旦開きます。 Alt+F11キー → VBE画面 → 画面左にある「This Workbook」をダブルクリック → ↓のコードをコピー&ペーストしてマクロを実行してみてください。 (Alt+F8キー → マクロ → マクロ実行です) Sub test() 'この行から Dim ws1, ws2 As Worksheet Dim i, j As Long Set ws1 = Workbooks("ブックA").Worksheets("商品データ") Set ws2 = Workbooks("ブックB").Worksheets("価格変更データ") For i = 2 To ws1.Cells(Rows.Count, 1).End(xlUp).Row For j = 2 To ws2.Cells(Rows.Count, 1).End(xlUp).Row If ws1.Cells(i, 1) = ws2.Cells(j, 1) Then ws1.Cells(i, 6) = ws2.Cells(j, 2) End If Next j Next i End Sub 'この行まで 尚、一旦マクロを実行すると元に戻せませんので、 元データを別Sheetにコピーしておきマクロを試してみてください。 参考になれば良いのですが・・・m(_ _)m

関連するQ&A