• 締切済み

Excel2000ですが検索置換の問題です。

検索する文字列を「香川?」とすると、殆んどは上手くいくのですが 12行目が大川市高松市と市が2つ続いてしまいます。 また14行目が高松市高松市となってしまいます。 一発ですんなりと解答のようにするには、どのような文字列を検索文字列や置換後の文字列にすればいいのでしょう? 宜しくお願い致します。

みんなの回答

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.3

複雑な検索置換を行うときはワードを併用します。 エクセルの住所範囲を選択して「コピー」して、ワードに貼り付けます。 Ctrl+Hで置換ダイアログを出して「オプション」ボタンをクリックし「ワイルドカードを使用する」にチェックを入れ、検索する文字列に「香川[郡村市]([!山])」、置換後の文字列に「高松市\1」と入力して「すべて置換」します。 最後にこのデータ範囲をコピーしてエクセルに貼り付ければ完成です。 ちなみに、上記の検索条件は、「香川郡」「香川市」または「香川村」でその後に「山」が付かない文字列(香川郡山町を除外するため)を検索し、「山」以外の文字はそのまま表示するようにしています。

gokurosama
質問者

お礼

回答ありがとうございます。 >最後にこのデータ範囲をコピーしてエクセルに貼り付ければ完成です。 一旦ワードに移したものをエクセルに貼り付けると、元のような表になりません。 元のような表にする方法ってありますか? この質問は管理者に閉じられてしまいましたので、新たに質問を立てていますので、目に留まりましたら宜しくお願い致します。

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.2

こんばんは! お望みの方法ではないと思いますが・・・ VBAでの一例です。 データはA列の2行目からあるとします。 画面の左下にある操作したいSheet見出し上で右クリック → コードの表示 → VBE画面が表示されますので、↓のコードをコピー&ペーストしてマクロを実行してみてください。 当方使用のExcel2003の場合は メニュー → ツール → マクロ → マクロ → 実行 で可能です。 Excel2000も似たような操作になると思います。 Sub test() Dim i As Long Dim str As String For i = 2 To Cells(Rows.Count, 1).End(xlUp).Row str = Left(Cells(i, 1), 3) If str = "香川市" Or str = "香川郡" Or str = "香川村" Then Cells(i, 1) = Replace(Cells(i, 1), str, "高松市") End If Next i End Sub 尚、一旦マクロを実行すると元に戻せませんので、別Sheetにコピー&ペーストしてマクロを試してみてください。 以上、的外れならよみながしてくださいね。m(__)m

gokurosama
質問者

お礼

回答ありがとうございます。 マクロでもやれるんですね。 私はまだまだマクロの勉強には届いていませんので、将来の課題として楽しみにしています。

noname#164823
noname#164823
回答No.1

またお会いしましたね。 「すべて置換」でやると、香川が高松市に変わってしまうので、 1つずつ置換します。 「置換」で見ながら、置換したくない行は「次を検索」で飛ばします。 14行目は、予め香川郡以降をセルをWクリックし、後ろを下の行にでも 切り取り、貼り付けで移動します。 置換後、戻します。 この方法ではダメですか。

gokurosama
質問者

お礼

お礼が遅くなってしまいました。いつもありがとうございます。 リンクを貼ると、規約違反とかで外されてしまいます。実際にエクセルのシート上でやってもらうと非常に分かりやすいのですが、質問者の便宜よりも規約の方が優先されるので苦労します。 やはり一発でやる方法というのはないようですね。答えだけしか書かれていないので、どの方法がいいのか悪いのか私にも分からないのです。(T_T) ありがとうございました。

関連するQ&A