アプリ版:「スタンプのみでお礼する」機能のリリースについて

A              B
1 ABC-123【アイウ】 :あいう  あいう【アイウ】 :ABC-123
2 DEF-456【カキク】 :かきく  かきく【カキク】 :DEF-456
3 GHI-789【サシス】 :さしす  さしす【サシス】 :GHI-789
4 JKL-123【タチツ】 :たちつ  たちつ【タチツ】 :JKL-123
5 MNO-456【ナニヌ】 :なにぬ  なにぬ【ナニヌ】 :MNO-456

A列の文字列を上記のように左右入れ替えて
B列のようにするB列の式を教えて下さい。

Office 2019を使用しています。

質問者からの補足コメント

  • 補足いたします。

    それぞれ文字数が不規則に変化するため、文字数指定での置き換えができないです。
    ご回答者様、追記が遅れてしまい申し訳ありません。

      補足日時:2019/08/22 17:28
  • 感覚としては 【 の前の文字列を : の後ろの文字列と入れ替えることが出来るような方法は無いかと模索しております。

      補足日時:2019/08/22 17:32

A 回答 (9件)

No2です


文字数が不規則なら、MID関数の開始位置と文字数を次のように訂正しましす。

=RIGHT(A1,LEN(A1)-FIND("】",A1)-1)&MID(A1,FIND("【",A1),LEN(A1)-FIND(":",A1)+3)&LEFT(A1,FIND("【",A1)-1)
    • good
    • 0

ユーザー定義関数で良ければ、こんな感じです。


B1セルに、=irekae(A1) と入力して使います。

Function irekae(s As String) As String
Dim a As Variant
a = Split(Replace(s, "【", ":【", , 1), ":")
irekae = a(2) & a(1) & ":" & a(0)
End Function
    • good
    • 0

No1です



>文字数が不規則に変化するため、文字数指定での置き換えができないです。
ダメという情報は後から出てくるけれど、事前には情報が得られないのでは、手探りのクイズで『すんごく運が良ければ当たります!』ってな感じですな。


とうせ、当たるも八卦なので、最後の一回だけトライ。

=IFERROR(MID(A1,FIND("】 :",A1)+3,LEN(A1)) & MID(A1,FIND("【",A1),FIND("】 :",A1)-FIND("【",A1)+3) & LEFT(A1,FIND("【",A1)-1),"")

はずれたら、お後は他の回答者様に宜しくぅ~~
(No3様と似てるのかな?)
    • good
    • 0

No.3です。



>【 の前の文字列を : の後ろの文字列と入れ替えることが出来るような方法・・・

そのつもりの回答でした。
文字数関係なく、入れ替えができると思います。
そのために数式が長くなってしまいました。m(_ _)m
    • good
    • 0

別解として、私の Excel 2019 の場合は下記でもOK。


B1: =TEXTJOIN(,,RIGHT(A1,3),MID(A1,8,7),LEFT(A1,7))
    • good
    • 1

Excelでないとダメなのですか?


Wordならワイルドカードを使う置換で、簡単に入れ替えできます。
例:ワイルドカードにチェック
検索する文字列 
(*)(【*】) :(*)^13
置換後の文字列
\3\2 :\1^p
[すべて置換]を実行。
これで入れ替えたものをExcelに戻します。

Excelで関数を使いA列とB列両方が必要ならば、No.3さんのような
長い式を使えば可能だと思います。

文字列のパターンが決まったものならば、他の回答にあるものでも
入れ替えできますが、複雑なパターンだと無理があります。

個人的には、[正規表現]ができるテキストエディタなどでの置換で
入れ替えたほうが簡単だと思いますよ。
「エクセルで文字列の左右を入れ替える方法」の回答画像4
    • good
    • 0

こんばんは!



少し長くなりますが・・・
=REPLACE(REPLACE(A1,1,FIND("【",A1)-1,MID(A1,FIND(":",A1)+1,LEN(A1))),FIND(":",REPLACE(A1,1,FIND("【",A1)-1,MID(A1,FIND(":",A1)+1,LEN(A1))))+1,LEN(A1),"")&LEFT(A1,FIND("【",A1)-1)

ではどうでしょうか?m(_ _)m
    • good
    • 2

入れ替える文字列の各字数か゛各行同一であるなら


B1に式 =MID(A1,15,3)&MID(A1,8,5)&MID(A1,13,2)&LEFT(A1,7)
を入力して、B5までコピーする。
MID関数とLEFT関数の式の意味を検索して理解してから試してください。
    • good
    • 0

こんにちは



規則性がはっきりしませんが、文字数固定の形式としてとらえてもよいのなら…

A1セルに元の文字列があるとして、B1セルに
 =RIGHT(A1,3)&MID(A1,8,7)&LEFT(A1,7)
とかでは?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!