エクセルの検索・置換について教えてください。「N12,N06,18,24,N54」という文字列を「12N,06N,18,24,54N」に置換したいと思っています。ワイルドカードでN**を検索するところまではできるのですが、その後どうすればNを数字の後に移動できるでしょう?

文字列はひとつのセルに入っています。

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

回答4件)

id:andi No.1

回答回数448ベストアンサー獲得回数0

ポイント40pt

N**→**Nへの複数同時置換は多分普通の「検索/置換」では出来ないと思います。

という訳でマクロ(ExcelVBA)を組んで見ました。


Sub ReplaceN()

Dim ObjRegExp As Object

Dim StrBefore, StrAfter, StrBuffer As String

Dim ObjRange As Range


Set ObjRegExp = CreateObject(”VBScript.RegExp”)


StrBefore = ”N(¥d+)”

StrAfter = ”$1N”


With ObjRegExp

.Pattern = StrBefore

.IgnoreCase = True

.Global = True

For Each ObjRange In ActiveSheet.UsedRange

StrBuffer = ObjRange.Value

If .Test(StrBuffer) Then

ObjRange.Value = .Replace(StrBuffer, StrAfter)

End If

Next

End With


Set ObjRegExp = Nothing

End Sub


上記のソースを[ツール]-[マクロ]-[Visual Basic Editor]からThisWorkbookに貼り付けて、その後EXCELの[ツール]-[マクロ]-[マクロ]から[ReplaceN]を選んで実行して下さい。

id:nontan2005 No.2

回答回数492ベストアンサー獲得回数24

ポイント20pt

http://www.vector.co.jp/vpack/filearea/win/util/text/conv/code/i...

Download: Windows > ユーティリティ > テキストファイル用 > テキスト変換 > 文字コード変換

調べた限りエクセルが持っている置換ツールですと正規表現が扱えないようなので、一度テキスト形式(CSV)でSAVEしてから、

MS-WORDやスクリーンエディタ、上記にあるツールで置換するという方法はどうでしょうか?

MS WORDでの正規表現の使い方は以下を参考にされると良いと思います。

http://www.shuiren.org/chuden/teach/word/search/replace02.htm#ta...

文字列の置換 その2 置換オプション ―MS Wordを使いこなす―

id:mzmzmi No.3

回答回数3ベストアンサー獲得回数0

ポイント5pt

標記のページの一番下にある説明を読まれるか下記の記述に従って作業してください。


簡単です。

Ctrl+Fで検索ダイアログボックスを表示させて、置換(R)ボタンを押してください。

上の欄にN12,N06,18,24,N54、

下の欄に12N,06N,18,24,54N

と入力して、

すべて置換(A)ボタンを押せばOKです。

id:tyousann No.4

回答回数1983ベストアンサー獲得回数54

ポイント5pt

http://download.seesaa.jp/contents/win/app/a_other/13803/

フリーソフト - Seesaa ダウンロード : Excel検索置換

こんなのもありますが、

この場合は単純に

検索する文字列に N12,N06,18,24,N54

置換後の文字列に 12N,06N,18,24,54N

といれて置換しちゃえばOKなんじゃないでしょうか。

最初の文字列が一つの文字としてセルに入っているんですよね。

コメントはまだありません

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

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

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

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