人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: akaired
●カテゴリ:コンピュータ
✍キーワード:A1 ABC Excel VBA XYZ
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● vegah
●23ポイント

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

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


2 ● SALINGER
●23ポイント

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

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

3 ● Mook
●22ポイント

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

4 ● hakkyoku
●22ポイント

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

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

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

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

できました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ