dポイントプレゼントキャンペーン実施中!

EXCELの一斉置換するデータの対象を、一対だけではなく複数を一斉に置換したいと思っております。

例えば、
---------------------
■ CSVファイル「A」
---------------------
brbg106219-010,100013111
cubg349grey,100021317
obbgarid01,100031411
obbgarid02,100041212
rm01red6549,100051121
rm02silv6559,100063111

というCSVファイル「A」を用意し、上記リストの左側の番号が散らばったデータ「B」があるとします。

散らばったデータ「B」の中から、CSVファイル「A」の左の番号を見つけ出し、右の番号へ一斉置換する事は可能でしょうか?

お力添えをいただければと思います。
宜しくお願い致します。

A 回答 (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行目から入ってます。

質問のデータでしたら、一括で選択して[データ]→[区切り位置]→[コンマ区切り]で 同じようなデータに分割できます。

上記のコードを置換・検索文字のあるファイルの 標準モジュールにコピ・ぺして、
置換される側のセル範囲を選択して(少し広くても構わないでしょう)、選択状態のまま、このマクロを
起動すれば、すぐに終わるでしょう。
くれぐれも 予備のファイルで やってみてください^^;
    • good
    • 0

例えば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)))
    • good
    • 0

vlookup関数を使ってはいかがでしょう。

    • good
    • 0

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