• ベストアンサー

エクセルで複数語句の一括置換がしたい。

1つのシートの複数のセルの中に文章が記入してあり、その中の文字を 一括で置換したいのです。 AAAA → BBBB 1234 → 5678 ○×△□ → ●×▲■ このように変更したい文字が数百とあります。 また、置換前の語句(セルA1~)と置換後の語句(セルB1~)というように エクセルの別のファイルに並べております。 どのようにすれば出来るのかお教え頂けませんでしょうか? もしマクロなどで出来るとしたら、初心者ですので細かいやり方などお教え頂けたらありがたいと思っております。 よろしくお願いいたします。

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

  • ベストアンサー
回答No.4

http://2020hindsight.cocolog-nifty.com/blog/2009/01/excel-b76d.html にあるようなもので、できますね。 1つの文章内に複数の置換対象に対応してます。

jyojyo3
質問者

お礼

ありがとうございます。 見直してじっくりやってみたらうまく行きました。 ありがとうございました。

その他の回答 (4)

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.5

alesi_sato様の示されたページの内容よりも =LOOKUP(Sheet2!B1,{"1234","AAAA","○×△□"},{"5678","BBBB","●×▲■"}) とした方が置き換え対応表の場所を別途持たずに済むのでスマートですが (※ {"1234","AAAA","○×△□"}は降順にソートしておいて下さい) 今回の質問では 「幾つかのセルに長文が配されており その個々の長文中の一部に誤字・誤用があるので それを修正したい。」 だと思うので、これではそぐわないでしょう こんな文を用意してみました 「としだ方が磁気中にぢかに辞書を持たせられるため置き換え対応表の場所おベッド持たづに済むのでスマートですが」  正   誤 としだ とした 磁気   式  ぢ   じ 場所お 場所を ベッド 別途 持たづ 持たず 此を変換してみたいと思います。 … …… ……… 質問の意図がわかりました、かなり高度ですね 私には手に負えませんでした。 FIND文では同一文章中に複数個対象があると駄目ですし SUBSTITUTE文では許多ある変換点の内の一個ずつしか変えてくれません。(とほほ) 仕方がないので作業用シートを用意頂き b1から横方向に変換対象(正誤表の誤の方) b2から同様に横方向に修正文字列(正誤表の正の方) を並べて頂き 置き換え対象を例えばA列の一列にA3から並べて頂いて b3に =INDEX(SUBSTITUTE(A3,OFFSET($b$1,0,0,1,COUNTA(1:1)),OFFSET($b$2,0,0,1,COUNTA(2:2))),COLUMN(A1)) とか 単純に =SUBSTITUTE(A3,b1,b2) とか入力して 「#REF!」がでるまで値を横方向にコピーすると 「#REF!」がでているすぐ横の列に変換完了の 「とした方が式中にじかに辞書を持たせられるため置き換え対応表の場所を別途持たずに済むのでスマートですが」 がでますので これら数式の入ったセルを下方向に必要分コピー頂くと 返還後のものが得られますが 此では使い物になりませんとね 陳謝 ヾ(ーー;)

jyojyo3
質問者

お礼

ありがとうございます。 お手数おかけいたしました。

  • Nouble
  • ベストアンサー率18% (330/1783)
回答No.3

配列数式と文字置換関数を使えば出来そうですね 今は寝所でパソ前でないので具体的な式は後程

jyojyo3
質問者

補足

ありがとうございます。 是非 よろしくお願いいたします。

回答No.2

http://2020hindsight.cocolog-nifty.com/blog/2009/01/excel-878b.html にあるような方法ではどうでしょうか? サンプルファイルもDLできます。

jyojyo3
質問者

補足

ありがとうございます。 セルの中にある文字列がランダムに複数ありますので、 この方法では難しそうです。

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

一括というより1個ずつ順番になるのでは?って思うんですけど。 >また、置換前の語句(セルA1~)と置換後の語句(セルB1~)というように >エクセルの別のファイルに並べております。 ブック・シート・セル構成を提示された方が回答がつくかもです。

jyojyo3
質問者

補足

ありがとうございます。 改めてやりたい内容を書きます。 Book1のSheet1の各セルにHTMLの文字列が記入されています。 A1には <a href="http://AAA.com/">○×はこちら</a> C10には <a href="http://BBB.com/">123はこちら</a> H35には <a href="http://CCC.com/">TOPへ</a> という風に ランダムに記入されています。 このSheet1の中の AAA BBB CCC ○× 123 にあたる文字を AAA → DDD BBB → EEE CCC → FFF ○× → ▲■ 123 → 456 という風に別の語句に置換をしたいのです。 又、置換前の語句と置換後の語句はBook2のSheet1に 置換前の語句(セルA1~A50)と置換後の語句(セルB1~B50)という形で 記入してあります。 ※置換したい語句の数は前後します。 (前)(後) AAA DDD BBB EEE CCC FFF ○× ▲■ 123 456 ・ ・ ・ ・ ・ ・ 一つずつ置換をしていたらきりがなく、一気に出来る方法をさがしております。 よろしくお願いいたします。

関連するQ&A

  • Excel一括置換(フォント読み込み)

    Excelのセルの中に複数のフォントが混在している状態で、任意のフォントを指定して、別シートの置換リストに従って一括置換できるようなマクロ、もしくは同じような機能をもつツールはありませんでしょうか。 Excelのバージョンは2003以上が希望です。 色々探してみたのですが、フォント情報まで読み取るものは見当たりませんでした。 宜しくお願い致します。

  • Excelマクロで置換

    Excelマクロで置換 セルA1に6桁・スペース・24桁の数字が入っています。 最初の6桁に130,397,430,440が含まれているシートを選択 そのシートの中に "ああああ"があったら"ああああい"に "いいいい"があったら"いいいいう"に "うううう"があったら"ううううえ"に と置換をするマクロを書きたいと思っています。 置換する対象の文字列は多いので別マクロで作成し呼び出したいと考えています。 シートは1ブックに30シート程。何シートあるかはブックによって変わります。 現在マクロの記録を使って試行錯誤しているのですが なにぶん初心者なのでなかなかうまくいきません。 どなたかご教授頂ければと思います。

  • 日本語→中国語の複数単語の一括置換(エクセル)

    エクセルのマクロを活用して下記のことを考えています。 エクセルで複数単語の一括置換は過去の質問でありまして活用できそうだったのですが、置換後の文字が中国語だとマクロに中国語を記載すると文字化け(?マーク)になり、エラーが出ます。 日本語→中国語の複数単語の一括置換(エクセル)ができる方法はないのでしょうか? やりたいことは、簡単に以下のようなことです。 エクセル全てのシートが対象で、事前に下記の置換内容を準備します。 そして一括置換がエクセル内でしたいです。 China1→中国語1 China2→中国語2 China3→中国語3 China4→中国語4 宜しくお願い致します。

  • 別ファイルで用意されたデータを元に文字を一括置換するには?

    エクセル内の全シート、全セルにある文字をマクロで一括置換したいと思います。 置換したい文字は複数あり、その内容は別ファイル「置換.xls」に次のように記述されています。    A列   B列 1  等   など 2  有り  あり 3  無し  なし ※A列をB列に置換します。 ※置換の項目数は、実際には3つではなく、100近くあります。 どのようなマクロを書けばよいのかお教えいただけませんでしょうか? 具体的なコードでなくても、方向性だけを示していただいても助かります。 よろしくお願いいたします。 Excel2003を利用しています。

  • 複数の特定の文字を一括置換

    複数の特定の文字10個ぐらいを一括置換するマクロ、式を教えて下さい 

  • 文字列一括置換ソフトを探してます

    文字列一括置換ソフトを探してます・・・って書くと、Vectorに行けばいっぱいあると言われそうですが、ちょっと条件が特殊です。 ・複数(多分500~1000個)のテキストファイルの指定文字列を一括置換したい(ここまでは普通) ・対象の文字列の置換パターンが3万件(苦笑) ワイルドカードなどではなく、3万の単語を別の3万の単語に置換したいのです。 (プログラムの変数を、ネーミングルールを変えたために総入れ替えする・・・と考えて頂ければ分かっていただけるでしょうか) 10件くらいのパターンを連続して置換するソフトは見つかったのですが、3万件となると・・・。 (そもそも3万件のリストをよく作ったもんだ) UNIXにsedというコマンドがあるというのは聞いたことがあるのですが、Windows(&DOS)しか触ったことがないので、どうすれば良いのか分かりません(私はプログラマじゃありません)。 なお、同じネタでエクセルのワークシートのセルを置換する必要があるのですが、こちらは自作マクロで対応しています。 もし適当なソフトが見つからなければ、エクセルマクロの作成を検討しています。 (マクロでテキストファイルの読み込みはやったことがあるのですが、書き出しは多分やったことがない) 置換リストはエクセルで作成しているので、リストはソフトに応じた形式で準備できると思います。 以上、よろしくお願いいたします。

  • 複数のExcelに共通の文言を一括変更出来ますでしょうか

    初めて投稿致します。 XPにてExcel2003のSP3を使用しております。 複数のExcelに共通して使用している文言があるのですが、 これらを一括で別の文言に変更する方法はありますでしょうか? ファイル数は120ほどで、各シートにも文言が記載されていますが、 書面の都合上、全ファイル・シートすべて同一のセルではなく バラバラのセルに入っております。 文言が入っているセルもひとつではなく、複数使用しています。 置換のような方法を探しているのですが、中々見つからず、 ご教示頂けましたら幸いです。 Visual Basicやマクロはわかりませんが、 理解できるよう努めますので、 宜しくお願い致します。

  • ワードで複数の文字を一括・連続置換するマクロ

    ワード(Word)で複数の文字を一括・連続置換するマクロを作りたいのです。 次の回答を参考にしてマクロを作ってみました。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=994495 ところが、置換したい単語が100くらいになってきて扱いづらいので、 ワード(又はテキストやエクセルでも可)の置換文字のリストのファイルを参照して、同じように連続置換させたいのですが、どのような方法があるでしょうか? シェアウェアでも同様の機能をもつものがありますが、自由にカスタマイズできないので使えません。 (置換後の文字列に蛍光ペンをかけたいので)

  • ファイル名を「複数の任意のセル内容+指定した語句」にしたい

    エクセルのファイル名を 「ある決まった複数のセルに入力された文字」+「今日の日付」に出来ないかと思っています。 例えば   セルA1にある文字   AAAA   セルB1にある文字   BBBB   セルC1にある文字   CCCC   +今日の日付 の場合 結果のファイル名が「AAAA_BBBB_CCCC_070411(今日の日付)」というファイル名になるようにしたいです。 保存箇所は操作者の都合があるので、ファイルを保存する作業はしなくて、ファイル名だけつける処理のみを行いたいです。 複数のセルを挟むのは、アンダーバーで無くても良いですが、ブランク以外で各セルごとが異なっていることがファイル名でもわかるようにしたいと考えています。 以上 宜しくお願いいたします。

  • 正規表現で一括置換

    現在、数多くの長文データを、テキストエディタの置換機能で一括置換しています。 jeditX(または秀丸エディタ)の正規表現をもちいた複数一括置換について質問させていただきます。 私は正規表現やPC言語の初心者です。どうぞよろしくお願いいたします。 かなり困り果てております。どうぞ、正規表現にくわしいかた、よろしくお願いします。 一二三『一二三にそれぞれ♪マーク』 という文章に対して 一♪二♪三♪ という一括置換をすることには成功しました。 こう書いています。 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪ これでぶじ、以下のように一括置換できました。 一♪二♪三♪ 現実には傍点や圏点をふっているんですが、判りやすく♪マークにしています。 この調子で長い文章も変換できていて満足していたのですが…… しかし代入文字が10個以上になったとたんに、まったく動きません。 ■置換したい文章 一二三四五六七八九十『一二三四五六七八九十にそれぞれ♪マーク』 ■検索文字列 (.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})『(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})(.{1,1})にそれぞれ♪マーク』 ■置換文字列 \1♪\2♪\3♪\4♪\5♪\6♪\7♪\8♪\9♪\10♪ こうやると、置換後の文章は以下のようになってしまいます。 一♪二♪三♪四♪五♪六♪七♪八♪九♪一0♪ 10個目以降の数字が、正しく機能してくれません。 \10  という正規表現の書き方は 「一番目の値を参照して、それから数字の0を記入しなさい」 という意味になってしまうようです。 わたしは十番目の値を代入してほしいだけなんです。 \1 や \2 や \3 といった代入文字のように \10 や \11 を機能させる、正しい表記をご教授ください。よろしくお願いいたします。 ちなみに以下のように書いてもダメでした……。 \1\0 グーグルで1日中検索しても判りませんでした。jeditXの複数一括置換でこれをなんとかしたいのです。ご存じの方、どうぞ教えてください。よろしくおねがいします! 秀丸エディタをご利用で、正規表現にくわしい方も、ぜひヒントを出していただければと思います。

専門家に質問してみよう