EXCELでのファイル変換について教えてください。

例えば、
「ABCD_001~ABCD_0100」という連番になっているデータを「EFG_251~EFG_350」と連番になっている形のデータを効率良く置換する方法はありませんか?

目的が達成できるフリーソフトあげば、教えてください。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2008/08/14 16:20:02
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答7件)

id:Gay_Yahng No.1

回答回数724ベストアンサー獲得回数26

ポイント19pt

連番になっていると分かっているならば、

ABCD_001となっているデータをEFG_251に書き換えて

EFG_251をフィルしてしまえばできます。

 

http://dreamy.boy.jp/tec47.htm

http://www2.odn.ne.jp/excel/waza/edit.html

id:msdtakashi

すみません。

追加用件忘れていました。

一部

ABCD_002

ABDC_003

ABCD_003

ABCD_004

となっているケースがあり、一つずつ置換するしかないのが現状です。

2008/08/07 16:41:34
id:pahoo No.2

回答回数5960ベストアンサー獲得回数633

ポイント19pt

「ABCD_001~ABCD_0100」が、特定の「列」に入っているという前提で回答します。


A列に入っているのであれば、未使用の列(ここではZ列とします)に

="EFG_" & RIGHT($A1,3)+250

という式を入れてください。

次に、Z1セルを下方に向かってコピーしてください。(このとき式の $A1 はZ列に行に応じて $A2, $A3‥‥と変化していくものとします)


これで、Z列に変換後の文字列が入っていきます。

あとは、Z列をA列にコピー(形式を選択して貼り付け-値)とすれば、A列の内容を置換することができます。


参考サイト

id:msdtakashi

上で書いた通りです。

置換する数値は、1~10と23~32と連番で対応しているのですが、

置換したいデータ自体が、重複しています。

2008/08/07 16:45:10
id:Gay_Yahng No.3

回答回数724ベストアンサー獲得回数26

ポイント18pt

ABCD_002はEFG_252

になりますよね。

ABDC_003は何に変換するんですか?

EGF_253とか?

何か規則性があるのでしょうか?

 

http://q.hatena.ne.jp/1218093392

id:msdtakashi

規則性は、連番だけで対応しておりません。

変換表をイメージしてください。

片方は1~500くらいまでの連番で表示されていますが、

変換前のデータは、1~50、1~80、1~125、1~245になっていると考えていただければと思います。

2008/08/07 17:03:09
id:pahoo No.4

回答回数5960ベストアンサー獲得回数633

ポイント18pt

#3のコメントに対し

規則性は、連番だけで対応しておりません。

変換表をイメージしてください。

となると、どこかに変換表がないかぎり、プログラムで変換するのは無理だと思われます。

id:msdtakashi

1対1の変換表が有りますが、EXCELの中にデータが散らばっており、500個のデータを500回置換する必要があるのが現状です。

変換表に基づいて一括で変換する方法は有りますでしょうか?

2008/08/07 17:34:57
id:Mook No.5

回答回数1314ベストアンサー獲得回数393

ポイント18pt

VLOOKUP 関数が適用できるケースではないですか?


変換表がA列に変換元、B列に変換先となっていた場合、変換表全体を選んで、

挿入⇒名前⇒定義で名前を付けてください(例:HENKANHYO)。


変換したいデータが、別のシートのA列にあるとすると、B1に

=VLOOKUP(A1, HENKANHYO, 2, FALSE )

として、B列全体にコピーします。


結果をコピーしそのままの状態で、編集⇒形式を選択して貼り付け⇒値を選んで張り付ければ、

データになりますので、それをA列に張り付けるなりして処理をしてはどうでしょうか。

http://allabout.co.jp/computer/msexcel/closeup/CU20060805A/

id:SALINGER No.6

回答回数3454ベストアンサー獲得回数969

ポイント18pt

シートのA列のデータをB列に置換するというような表を作ってシート名を変換表という名前にします。

後は、一括変換したいシートをアクティブにして以下のマクロを実行させてください。


Sub MacroTikan()
    Dim r As Range
    Dim i As Long
    
    With Worksheets("変換表")
        i = 1
        While .Cells(i, 1).Value <> ""
            For Each r In ActiveSheet.UsedRange
                r.Value = Replace(r.Value, .Cells(i, 1).Value, .Cells(i, 2).Value)
            Next
            i = i + 1
        Wend
    End With
End Sub

ただし、上から順番に置換するので先に置換した内容が、後の置換に該当すると置換の上書きをしますが、

ABCD_001~ABCD_0100→EFG_251~EFG_350のようなデータなら大丈夫かな。


VBAを使ったことがなければ以下を参考に。

http://www.officepro.jp/excelvba/ini/index1.html

http://www.officepro.jp/excelvba/ini/index2.html

http://www.officepro.jp/excelvba/ini/index3.html

質問者が未読の回答一覧

 回答者回答受取ベストアンサー回答時間
1 zsexdr 2 1 0 2008-08-08 00:56:38
  • id:Gay_Yahng
    結局、どのようなデータを変換したいのでしょうか?
     
    ABDC_003

    ABCD_003
    は同じなんですかね?
    ABDC、ABCDとなっています。
    単に誤記ですか?
     
    ABCD部分の文字数はいつも同じですか?
    「_」は必ず付いていますか?
     
    「_」以前をABCD→EFGに変換して、数字を001→251のようなプラス250の数字への変換は関数でできますよ。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません