
Excelのセル内文字の並び替えについて質問があります。
セル内に名前のデータがカンマで区切られて入ってくるのですが、順番を変えたいのですが、どのような数式を使えばいいかご教示いただけませんか?
A1のデータをB1に変更できる数式はありますか?
A1=Last Name,First Name,Title
B1=Title First Name Last Name
※A1ではLast Name First Name Titleの間にはカンマ(,)がありそれぞれの間にスペースはありません。
※B1では、可能であればそれぞれの間にスペースを入れたいです。
(例)
A1=Nihon,Hanako,Ms.
B1=Ms. Hanako Nihon
複数の処理するので、できれば数式をコピーしただけで出来るようにしたいのですが、どなたか教えてくださいませんか?
宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
こんばんは!
手っ取り早くVBAでの一例です。
データはA列1行目からあるとします。
Sub Sample1()
Dim i As Long, k As Long
Dim myStr As String, myAry
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
myAry = Split(Cells(i, "A"), ",")
For k = UBound(myAry) To 0 Step -1
myStr = myStr & myAry(k) & " "
Next k
Cells(i, "B") = myStr
myStr = ""
Next i
End Sub
※ 関数で出来るかどうか判りませんが、
考える気力がないのでVBAにしてみました。
どうしても関数でやりたい!という場合は、この質問限定の関数(ユーザー定義関数)を作成すれば
通常のワークシート関数と同じ使い方ができます。m(_ _)m
質問からすぐに回答をいただき、ありがとうございました。
昨晩お礼を書いたのが、うまく反映されておらずすみません。
こちらのVBAで出来ました。本当にありがとうございます。
No.6
- 回答日時:
こんばんは。
補助列を用意します。
ここでは、C~Eまでです。
A1 :Nihon,Hanako,Ms.
B1:=C1&" "&D1&" "&E1
================
C1
=MID(A1,FIND("!",SUBSTITUTE(A1,",","!",2))+1,20)
D1:
=SUBSTITUTE(MID(A1,FIND("!",SUBSTITUTE(A1,",","!",1))+1,20),","&C1,"")
E1:
=SUBSTITUTE(A1,","&D1&","&C1,"")
------------
VBAの正規表現を使った場合
'//標準モジュールに登録
Public Function ReOrderName(ByVal oName)
Dim RegEx As Object
Dim Ms
Dim buf As String
Set RegEx = CreateObject("VBScript.RegExp")
With RegEx
'.Global = True: .IgnoreCase = False: .MultiLine = True
.Pattern = "(\w+),(\w+),([\w\.]+)"
Set Ms = .Execute(oName)
With Ms(0)
buf = .subMatches(2) & " " & .subMatches(1) & " " & .subMatches(0)
End With
End With
ReOrderName = buf
End Function
ワークシートでは、以下のように普通の関数と同じようにします。
=ReOrderName(A1)
遅い時間にも関わらず、回答いただきありがとうございました。
教えていただいた関数でうまく出せました。
VBAの方は、まだ標準モジュールに登録できてないので、また明日トライしてみます!
ありがとうございました。

No.5
- 回答日時:
[No.3]用の添付図です。

No.4
- 回答日時:
簡単にできる方法(おそらく)を紹介します。
変換前のデータはA列(A1~Axxセル)にあり、カンマで区切られた文字列は3個であり、B列以降は空白であるとします。
◆手順
1.A列を選択
2.メニュー → データ → 区切り位置
3.『カンマやタブなどの区切り文字に・・・』を選択して『次へ』をクリック
4.『カンマ』のみにチェックを入れて『完了』をクリック
5.D1セルに『=concatenate(C1," ",B1," ",A1)』と入力する
6.手順5で入力した式を下方向のデータ最下行までコピペ
7.完成
PS
・『区切り位置』はコンマ等の文字で区切られた文字列を分離する機能です。B列、C列にデータがあった場合、分離された文字列で上書きされます。
・手順5はD1セルである必要は特にありません。適切な場所においてください。
・concatenateは文字列を結合する関数です。ここでは分離した文字列をスペースを結合しています。
昨晩は回答をいただいたのに気が付きませんでしたが、遅い時間に回答をいただきありがとうございます。
こちらでもできました。
また、PSで区切り位置やconcatenateのご説明をいただき大変助かりました。
今まで使ったことのない関数でしたので、勉強になりました。今後活用させていただきます。
ありがとうございました。

No.3
- 回答日時:
1.「セル内に名前のデータがカンマで区切られて入ってくる」データを
 ̄ ̄Sheet2 に読み込む
2.[データ] ⇒ [区切り位置] で列A、B、C に分ける
3.Sheet1 において、
 ̄ ̄次式 を入力したセル A1 を下方にズズーッとオートフィル
 ̄ ̄ =INDEX(Sheet2!A1:C1,3)&" "&INDEX(Sheet2!A1:C1,2)&" "&INDEX(Sheet2!A1:C1,1)&""
私、何か勘違いしてますか?
遅い時間に回答をしてくださり、ありがとうございます。
こちらでも望み通りの結果を得ることができ大変助かりました。
区切り位置やINDEXを知らなかったので、大変勉強になりました。
ありがとうございます。
No.1
- 回答日時:
文字列を3つに分けて、1つ目と3つ目の位置を入れ替えたい。
ということですか?
FIND関数やSEARCH関数でカンマの位置を調べれば、各位置の文字の長さは分かりますよね。
あとは…
MID関数で元の文字列から3つ目を切り抜いて、MID関数で真ん中を切り抜いて、MID関数で1つ目を切り抜いて、
この順に繋げばOK。
そんだけです。
この手順の中で何が分かりませんか?
数式だけ示して欲しいということですが、意味が分からないと同様の問題に遭遇した時にまた悩むことになりますよ。
「急いでいる」ということですので、他人に聞くなんてまどろっこしいことしないで自分で解決できるようにすべきです。
分からない点について質問されれば詳しく教えます。
返答お待ちしてます。
早々に回答いただきありがとうございます。
関数初心者で、どの関数を使えばできるのかさえ分からなかったので、大変参考になりました。
教えていただいた関数で先ほどから試しているのですがまだうまくできないので、明日再度試してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
Excel同一セル内の、アルファベットと数字の順番を入れ替えについて教えてください
Excel(エクセル)
-
セルの中の数字の並べ替え
Excel(エクセル)
-
EXCELで文字列の並べかえ
Excel(エクセル)
-
-
4
エクセルの1セル内の文字列操作。
Excel(エクセル)
-
5
エクセルで空白文字の前後を入れ替えることってできますか?
Excel(エクセル)
-
6
エクセルのセル内の行の並び替えについて
Excel(エクセル)
-
7
【Excel】 文字の前後を入れ替えたい
Excel(エクセル)
-
8
同一セル内の重複文字を削除したいです
Excel(エクセル)
-
9
エクセルのセル内の数字順に変える
その他(Microsoft Office)
-
10
エクセルで一つのセルの中の数字を並び替え
Excel(エクセル)
-
11
同じセルで重複している文字を削除したい
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
数式が入ったセルを含めて、数...
-
Excelでの検索結果を含む行だけ...
-
エクセルで小数を含む数値の抽出
-
別のセルに値が入力されたら、...
-
エクセル:横長の表を改行して...
-
PCにてエクセル2003。IF関数を...
-
スペースとスペースの間の文字...
-
「Exel」で、指定した列が...
-
エクセルで表示されている数字...
-
エクセルで正解率を出す関数は?
-
空白行も含めてソートしたい
-
入退社日より各月末の在籍者数...
-
excelにて文字列を時刻として認...
-
Excel上でのデータ数字が連番で...
-
EXCELのハイホン区切りの数字並...
-
長い列の最後まで計算(エクセル)
-
エクセル 「入力候補を複数表...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の文字列のいずれかが含ま...
-
Excelの入力規則で2列表示したい
-
SUMに含まれる範囲から特定のセ...
-
Excel上でのデータ数字が連番で...
-
数式が入ったセルを含めて、数...
-
Excelでの検索結果を含む行だけ...
-
エクセルで曜日に応じた文字を...
-
「エクセル」特定の行(セル)...
-
エクセル:横長の表を改行して...
-
列の数字に100をかけたい
-
スペースとスペースの間の文字...
-
エクセルで表示されている数字...
-
エクセルでセルの値分の個数の...
-
Excelのセル内文字の並び替えに...
-
EXCELの特定セルを編集不可・コ...
-
入退社日より各月末の在籍者数...
-
時間を「昼間」と「夜間」に分...
-
エクセル セル内の文字数を超え...
-
エクセルにデータを入力すると...
-
エクセルで、毎日の走行距離(...
おすすめ情報