プロが教える店舗&オフィスのセキュリティ対策術

エクセル初心者ですm(_ _)m
複数のエクセル商品価格表があります。いろいろな会社からの物で、形式をいじったり、大量なので一つのファイルに統合したりできません。
商品番号の一部で検索して一致する商品番号が、どのファイルのどのシートにあるかやりたいのですが。
本などを調べましたが方法が、わかりません。
初心者なので、できれば分かりやすく教えていただけると嬉しいです!!
よろしくお願いします。

A 回答 (5件)

何度も失礼して申し訳ありません。


>ファイル数が10ほど、それぞれシートが10以上あるので、時間がかかりそうですσ(^_^;)
>通常業務以外の仕事なので、週末時間をとってやってみます。
No2の方がおっしゃり様に、手間がかかっても一枚のシートに纏める
これが正解だと思います。
シートは
(例)会社名|商品番号|商品名|価格|等の必要な項目を入れた後
が良いです。
ひたすコピー(Ctrl+C)と貼付け(Ctrl+V)を繰り返して
データを整理しましょう。

必要な検索だけでなく、オートフィルターなどを使って
必要な情報に絞り込んで表示させてなどいくらでも応用が出来
実務に使えるファイルになります。
たぶんに、最初からそうしておけば良かった
だけだと思います。
    • good
    • 0

初心者さんには、ちょっと難しいかもしれませんが、こんなマクロでどうでしょうか。


まず、検索用のブックを作成し、標準モジュールに下記のマクロをコピーしたら、次のように操作します。
①検索対象のブックをすべて開く。
②検索用ブックのSheet1のA1セルに検索したい商品番号の一部の文字を入力し、マクロを実行する。
すると検索用シートのA2セル以降に検索結果が表示されます。

Sub sample1()
Dim wb As Workbook
Dim ws As Worksheet
Dim PutWs As Worksheet
Dim PutRow As Long
Dim strKey As Variant
Dim c As Range
Set PutWs = ThisWorkbook.Sheets("Sheet1")
PutWs.Range(Cells(2, 1), Cells.SpecialCells(xlCellTypeLastCell)).Clear
PutRow = 1
strKey = PutWs.Range("A1").Value
For Each wb In Workbooks
If wb.Name <> ThisWorkbook.Name Then
For Each ws In wb.Worksheets
For Each c In ws.Range(ws.Cells(1, 1), ws.Cells.SpecialCells(xlCellTypeLastCell))
If c.Value Like "*" & strKey & "*" Then
PutRow = PutRow + 1
PutWs.Range("A" & PutRow) = wb.Name
PutWs.Range("B" & PutRow) = ws.Name
PutWs.Range("C" & PutRow) = c.Address
PutWs.Range("D" & PutRow) = c.Value
End If
Next
Next
End If
Next
End Sub
    • good
    • 2
この回答へのお礼

回答をいただき、有難うございます!
初心者の私には難しそうですねσ(^_^;)
通常業務内に時間取れそうに無いので、週末やってみます。

お礼日時:2016/03/04 08:07

> 複数のエクセルファイル内を検索する方法


> 商品番号の一部で検索して一致する商品番号が、どのファイルのどのシートにあるかやりたいのですが。

Windows 7より以前のOSをお使いなら、フリーソフトの「Excel Book Search」をお試しください。

「Excel Book Search - Excelファイル一括検索ソフト」
http://www.yamamototakashi.com/soft/excelbooksea …
    • good
    • 0
この回答へのお礼

回答いただき、ありがとうございます!
会社のpcにソフト落としてはダメなので、お家で試してみます!
取り急ぎお礼まで˃ᴗ˂

お礼日時:2016/03/04 08:09

複数のエクセルは何個位でしょうか?


色々な会社からの物で形式をいじれないとの事ですが大体の会社が
いじれないもの(絶対壊したりしちゃダメなエクセルなど)は
コピーして新しいシートに貼り付けて自由にいじれるようにしていると思います。

例えば何社分あるのか分かりませんがA社・B社・C社のエクセルが3つあるとします。
新しいシートを作成してまず必要事項を打ち込みします。

(例)A社商品番号|商品名|価格|等の必要な項目を入れた後

A社のエクセルを開いて商品番号が入力されている列を選びShift+↓を押して選択しコピーします。そして新規シートに貼り付けます。
再度商品名、価格も同じように選択コピー貼付をします。

B社に移るときには1行あけて
(例)B社商品番号|商品名|価格|とA社と同じにします。
先程同様必要な所を選択コピー貼付します。

C社も同様にします。

これで3つのエクセルが1つのエクセルになりましたので検索がしやすいです。
見やすいようにA社の表は薄いピンク、B社は薄い黄色、C社は薄い青など一目で検索した時に分かるようにすると楽だと思います。

エクセル名は3社検索用とか適当に合うような名前が良いと思います。

検索方法ですがCtrl+Fでの検索でしょうか?
[検索と置換]ダイアログボックスでも検索できます。
[検索と置換]ダイアログボックス→検索したい文字列を指定→[すべて検索]ボタンをクリックでも検索できます。

検索結果を違うところに表示とかになりますとやっぱりVBA(マクロ)が必要になってくるかと思います。
最初は手間がかかるので面倒だと思うかもしれませんがそれはVBAでも同じ事です。
最初に見やすくしたり並び替えたりと面倒ですが後々楽ですしその後見るときも見やすいです。

参考になるれば幸いです。がんばってください!
    • good
    • 1
この回答へのお礼

回答いただき、ありがとうございます!
やはりなかなか手がかかりそうですね。
ファイル数が10ほど、それぞれシートが10以上あるので、時間がかかりそうですσ(^_^;)
通常業務以外の仕事なので、週末時間をとってやってみます。
取り急ぎお礼まで˃ᴗ˂

お礼日時:2016/03/04 08:11

形式も異なるエクセルファイルから一発で検索するとなると


VBAの力を借りることになります。
それも、形式、ファイル名、フォルダなどご自身しかわかないので
私たちは力を貸すこともできません。
上級者の方が身近におられると良いのですが。
無理の様であれば、フォルダ名、ファイル名などを工夫して検索しやすくのが
手っ取り早いと思います、
>形式をいじったり、大量なので一つのファイルに統合したりできません。
上級者の方は、データを一枚のシートにまとめる事を最初に考えます。
エクセルのシートでは100万行がMAXなので
それを超えるような大量のデータであれば、ほかのデータベースなどを
検討いたします。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
やはり、統合するのが良いのですね。
形式が会社ごとに色々なのと、ファイル数が多く、シート数も多いので時間がかかりそうです(ノД`)
通常業務内では時間が取れそうにないので、週末やってみます。
マクロ…というかエクセル勉強しなきゃですね。
ありがとうございました。

お礼日時:2016/03/04 08:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!