![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
EXCELの一斉置換するデータの対象を、一対だけではなく複数を一斉に置換したいと思っております。
例えば、
---------------------
■ CSVファイル「A」
---------------------
brbg106219-010,100013111
cubg349grey,100021317
obbgarid01,100031411
obbgarid02,100041212
rm01red6549,100051121
rm02silv6559,100063111
というCSVファイル「A」を用意し、上記リストの左側の番号が散らばったデータ「B」があるとします。
散らばったデータ「B」の中から、CSVファイル「A」の左の番号を見つけ出し、右の番号へ一斉置換する事は可能でしょうか?
お力添えをいただければと思います。
宜しくお願い致します。
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_11.png?5a7ff87)
No.3ベストアンサー
- 回答日時:
データの構成や検索側、非検索側のデーターの量(特に ここで言うファイル「A」の量)がよく掴めないのと、『散らばったデータ「B」』がどんな形で分散しているのか、不明ですが、
「B」のデータが定形の表の中の一部として適所に分散している場合、回答2の方法では不向きだと思われます、また仮にA列に1列に整列してたとしても、置換されたデータはB列に、置換対象とならなかったデーターはA列にそのまま残ると思います、ひと塊のデータとするには、A列の置換対象とならなかったデータと、置換されたB列のデータを、合成する必要があるように思えます。
そんなこんなで、ファイル「A」の量がそんなに多くなければ、何も考えずに標準の「検索・置換」でやったほうが、結果的に早く済む可能性もあります^^
ただし、ファイル「A」が多かったり、頻繁にこういった処理が必要なら、
汎用のツールとして簡単なマクロを常備しておくのも いいと思います。
以下に よく使ってるツールの中から引っ張り出した物を載せてみます。
一部 質問の内容に合わせて修正してますので、このまま使えると思います。
----------------------------------
Sub 置換()
Dim 検索文字 As String
Dim 置換文字 As String
Dim R As Integer
R = 2 '検索文字・置換文字は2行目から下へ配置されている(配置状況で変更)
Do Until Sheets("A").Cells(R, 1).Value = "" '検索・置換文字はシートAに配置
検索文字 = Sheets("A").Cells(R, 2).Value '検索文字は2列目に配置されている
置換文字 = Sheets("A").Cells(R, 1).Value '置換文字は1列目に配置されている
Selection.Replace What:=検索文字, Replacement:=置換文字, Lookat:=xlWhole
R = R + 1 '「完全に同一」=xlWhole、「含まれる」=xlPart ↑
Loop
End Sub
-------------------------------
ここでは汎用性があるように置換・検索文字は シート名 A の A列とB列の2行目から入ってます。
質問のデータでしたら、一括で選択して[データ]→[区切り位置]→[コンマ区切り]で 同じようなデータに分割できます。
上記のコードを置換・検索文字のあるファイルの 標準モジュールにコピ・ぺして、
置換される側のセル範囲を選択して(少し広くても構わないでしょう)、選択状態のまま、このマクロを
起動すれば、すぐに終わるでしょう。
くれぐれも 予備のファイルで やってみてください^^;
No.2
- 回答日時:
例えばCSVファイルAがシート1のA列に有るとします。
シート1のB列は作業列としてB1セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A1="","",LEFT(A1,FIND(",",A1)-1))
一方データBはシート2のA列に有るとします。
B列にお求めのデータを表示させるとしてB1セルには次の式を入力して下方にオートフィルドラッグします。
=IF(A1="","",INDEX(Sheet1!A:A,MATCH(LEFT(A1,FIND(",",A1)-1),Sheet1!B:B,0)))
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) CSVファイルがカンマ区切りにならない。対処法を教えていただきたいです。 仕事でSMS一斉送信ができ 2 2022/07/01 21:24
- Visual Basic(VBA) マクロを教えてください。 7 2023/06/01 19:47
- その他(プログラミング・Web制作) python 気象データの取得 2 2023/06/20 23:54
- Excel(エクセル) 【困っています】VBA 追加処理の記述を教えてください。 1 2022/08/25 22:54
- Visual Basic(VBA) 複数のcsvファイルをExcelに一括変換したい 2 2023/03/03 12:44
- Excel(エクセル) Excelマクロ 差分抽出の方法が知りたいです。 2 2023/03/07 13:25
- その他(コンピューター・テクノロジー) 以下の用語がわかんないので教えてください!!! ①プロトコルの変換をする装置。トランスポート層からア 1 2023/07/05 09:10
- Visual Basic(VBA) エクセルVBA 4 2022/05/14 00:51
- Visual Basic(VBA) VBAで特定の場所にあるCSVファイル(複数)から特定場所を抜き出してExcelに転記したいです。 11 2023/05/23 16:29
- Excel(エクセル) Excelでデータを抽出するに良い方法 9 2023/02/06 12:42
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
Excelからテキストへのコ...
-
小数点を消す方法
-
Excelのシートにある1行...
-
Excelで、半角スペースをTABに...
-
置換機能を使わずに先頭に「'」...
-
エクセルでスペースの記号を表...
-
EXCEL 縦の式を横にコピー
-
excelで可視セルのみ置換
-
Excelのmatch関数エラー原因が...
-
企業名簿で(株)や(有)を無視し...
-
エクセルの表ををメモ帳などに...
-
マクロでデスクトップに書き出し
-
エクセルでセル内の一部を一括...
-
Excelの空文字セルの削除方法を...
-
エクセルのsubstitute関数と"置...
-
エクセルでのハイパーリンク切...
-
Excelのアポストロフィーの削除
-
エクセルの置換 メアドの@の前...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
多数の計算セルに一括で同一の...
-
エクセルで文字の入力がセルの...
-
エクセルのセルの中の,よりも前...
-
Excelからテキストへのコ...
-
excelで可視セルのみ置換
-
Excelの入力済みセルに一括で、...
-
Excelのmatch関数エラー原因が...
-
Excelで、半角スペースをTABに...
-
Excelの空文字セルの削除方法を...
-
【エクセル】ピボットテーブル...
-
置換機能を使わずに先頭に「'」...
-
企業名簿で(株)や(有)を無視し...
-
小数点を消す方法
-
エクセルの表ををメモ帳などに...
-
エクセルでセル内の一部分だけ...
-
Excelのシートにある1行...
-
エクセルでセル内の一部を一括...
-
Excelで特定の文字の前だけに空...
-
エクセルの関数で、記号などを...
-
別シートのリストから置換する方法
おすすめ情報