• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCELの一斉置換するデータの対象を、一対だけではなく複数を一斉に置)

EXCEL一斉置換:複数のデータを効率的に一斉置換する方法

このQ&Aのポイント
  • EXCELの一斉置換するデータの対象を、一対だけではなく複数を一斉に置換する方法を紹介します。
  • 具体的な手順としては、CSVファイル「A」に置換するデータを記述し、散らばったデータ「B」から対応する番号を探し出し、一斉に置換します。
  • これにより、大量のデータを手作業で一つずつ置換する手間を省き、効率的に処理することができます。

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

  • ベストアンサー
回答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行目から入ってます。 質問のデータでしたら、一括で選択して[データ]→[区切り位置]→[コンマ区切り]で 同じようなデータに分割できます。 上記のコードを置換・検索文字のあるファイルの 標準モジュールにコピ・ぺして、 置換される側のセル範囲を選択して(少し広くても構わないでしょう)、選択状態のまま、このマクロを 起動すれば、すぐに終わるでしょう。 くれぐれも 予備のファイルで やってみてください^^;

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答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)))

  • aokii
  • ベストアンサー率23% (5210/22062)
回答No.1

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

関連するQ&A