A B
1 《ABC》【あいう】ABCDE 【あいう】《ABC》ABCDE
2 《EFG》【えおかき】FGHI 【えおかき】《EFG》FGHI
3 《HIJK》【くけ】JKLMNO 【くけ】《HIJK》JKLMNO
4 《LM》【こさし】PQRS 【こさし】《LM》PQRS
5 《NOP》【すせ】TUVW 【すせ】《NOP》TUVW
A列の文字列で 《***》と【***】を入れ替えて
B列のようにするB列の式を教えて下さい。
9千行以上あります。
Excel 2007 です。
よろしくお願いします。
No.3ベストアンサー
- 回答日時:
2つに分けて考える
【あいう】の部分抜き出し
=MID(A1,FIND("【",A1),FIND("】",A1)-FIND("【",A1)+1)
ーー
【あいう】を抹消
=SUBSTITUTE(A1,MID(A1,FIND("【",A1),FIND("】",A1)-FIND("【",A1)+1),"")
両者を&で結合
=MID(A1,FIND("【",A1),FIND("】",A1)-FIND("【",A1)+1)&SUBSTITUTE(A1,MID(A1,FIND("【",A1),FIND("】",A1)-FIND
("【",A1)+1),"")
ーーー
例データ
《ABC》【あいう】ABCDE
《EFG》【えおかき】FGHI
結果
【あいう】《ABC》ABCDE
【えおかき】《EFG》FGHI
No.4
- 回答日時:
9000行以上もあるならVBAの方が良さそう。
#以下のコードはExcel2003で確認
Sub Sample()
Dim oRegExp As Object
Dim oRepA As Object
Dim oRepB As Object
Dim sRepA, sRepB, sTarget
Dim nLast, nRow
Set oRegExp = CreateObject("VBScript.RegExp")
Application.ScreenUpdating = False
With oRegExp
nLast = Range("A1").End(xlDown).Row
For nRow = 1 To nLast
sTarget = Range("A" & nRow).Text
'《…》の中を取り出す
.Pattern = "《.*》"
Set oRepA = .Execute(sTarget)
'【…】の中を取り出す
.Pattern = "【.*】"
Set oRepB = .Execute(sTarget)
'《…》【…】が一個づつある場合のみ処理
If oRepA.Count = 1 And oRepB.Count = 1 Then
'《…》の中を置換
sRepB = Mid(oRepB(0), 2, Len(oRepB(0)) - 2)
.Pattern = "《.*》"
sTarget = .Replace(sTarget, "《" & sRepB & "》")
'【…】の中を置換
sRepA = Mid(oRepA(0), 2, Len(oRepA(0)) - 2)
.Pattern = "【.*】"
sTarget = .Replace(sTarget, "【" & sRepA & "】")
'置換したものをB列に
Range("B" & nRow).Value = sTarget
End If
Set oRepA = Nothing
Set oRepB = Nothing
Next nRow
End With
Set oRegExp = Nothing
Application.ScreenUpdating = True
End Sub
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Excel(エクセル) Excel2007での条件付き書式について 6 2023/05/02 10:56
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Excel(エクセル) Excelの列から検索して該当する行を別シートに転記するVBA 2 2022/12/20 09:35
- Excel(エクセル) Excelの文字列を数字に変換する方法について 6 2023/07/31 21:18
- 計算機科学 Excel ある行と列が交わったところにマークを付けるには 7 2023/01/24 08:46
- その他(Microsoft Office) wordの差し込み印刷での日付表示 2 2023/08/15 16:51
- Excel(エクセル) EXCEL の判定式をお教えください 3 2022/06/08 14:37
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Excel(エクセル) Excelに文字データのみを貼り付けたい 8 2023/05/03 15:38
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
置換機能を使わずに先頭に「'」...
-
小数点を消す方法
-
Excelのアポストロフィーの削除
-
Excelからテキストへのコ...
-
Excelの空文字セルの削除方法を...
-
Excelで、半角スペースをTABに...
-
エクセルのセルの中の,よりも前...
-
エクセルで「4」「9」抜けの...
-
Excelのmatch関数エラー原因が...
-
Excelの置換がうまく出来ません。
-
エクセルでセル内の一部分だけ...
-
企業名簿で(株)や(有)を無視し...
-
excelで可視セルのみ置換
-
Excelの入力済みセルに一括で、...
-
エクセルでセル内の一部を一括...
-
エクセルの関数で、記号などを...
-
エクセルでスペースの記号を表...
-
【Excel】 文字の前後を入れ替...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで文字の入力がセルの...
-
多数の計算セルに一括で同一の...
-
Excelからテキストへのコ...
-
エクセルのセルの中の,よりも前...
-
置換機能を使わずに先頭に「'」...
-
Excelの入力済みセルに一括で、...
-
excelで可視セルのみ置換
-
Excelで、半角スペースをTABに...
-
Excelのmatch関数エラー原因が...
-
Excelの空文字セルの削除方法を...
-
【エクセル】ピボットテーブル...
-
エクセルでセル内の一部分だけ...
-
小数点を消す方法
-
Excelで特定の文字の前だけに空...
-
Excelのアポストロフィーの削除
-
エクセルの表ををメモ帳などに...
-
エクセルの関数で、記号などを...
-
企業名簿で(株)や(有)を無視し...
-
EXCELで"Tab"を"@"に置換したい
-
エクセルでスペースの記号を表...
おすすめ情報