Excelについて教えてください。A列に文字列があります。たとえばA1に「ABC」があったとします。

B1には「XYZは、・・・」といった文字列があったとします。「ABC」と「XYZ」を置き換えたいです。
つまり、「ABCは、・・・」といった文字列をつくりたいのです。文字列の先頭から「は」を探し、
それを置換すればできそうな気もするのですが、何か良い方法はないでしょうか?関数の組み合わせで
なんとかできないでしょうか?それともVBAが必要になるでしょうか?ちなみに1000行分のこういった
データを置換したいので、簡単にできればと思っています。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2009/11/04 20:10:03
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:vegah No.1

回答回数496ベストアンサー獲得回数2

ポイント23pt

置き換えた答えをC列に表示するために、C1セルに下記の式を入れるのはどうでしょうか。

=A1&MID(B1,FIND("は",B1,1),LEN(B1)-3)

id:SALINGER No.2

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

ポイント23pt

最初に出てくる「は」までならば、関数を使って。

=A1& MID(B1,FIND("は",B1),LEN(B1))
id:Mook No.3

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

ポイント22pt

VBA の例です。

元のファイルと、変更後の保存ファイルを指定して main を実行すると

シートの A列をB列の文字に変換して新しいファイルに保存します。

'----------------------------------------------------------
Sub main()
'----------------------------------------------------------
    Replaces "C:\text.txt", "C:\new_text.txt"
End Sub

'----------------------------------------------------------
Sub Replaces(filePath As String, newFilePath)
'----------------------------------------------------------
    Dim lastRow As Long
    lastRow = Range("A" & Rows.Count).End(xlUp).Row
    
    Dim fso As Object
    Set fso = CreateObject("Scripting.FileSystemObject")
    
    If fso.FileExists(filePath) = False Then
        MsgBox filePath & " がありません."
        Exit Sub
    End If
    
    Dim txtData As String
    txtData = fso.OpenTextFile(filePath).ReadAll()
    
    For r = 1 To lastRow
        txtData = Replace(txtData, Cells(r, "A").Value, Cells(r, "B").Value)
    Next
    fso.CreateTextFile(newFilePath).Write txtData
End Sub
id:hakkyoku No.4

回答回数32ベストアンサー獲得回数2

ポイント22pt

C1に下記を入力(コピペ)

=A1&MID(B1,SEARCH("は",B1,1),(LEN(B1)-SEARCH("は",B1,1)+1))

C1を1000行まで オートフィル

A列の文字をB列のはの前に持ってきた文字列をC列に表示する事が

できました。

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

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

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

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