• ベストアンサー

エクセルで外国人名を姓で並べ替えたい

作曲家の一覧があります。 A列に「Franz Schubert」、B列に「1797~1828」のように入力されています。 名と姓の間には空白があります。 これを、姓で並べ替えたいのですが、うまい方法はないでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.5

#4です。最も右のスペースの位置を割り出す方法 ちょっと技巧的だが、関数に拘るなら 例 aa sdf ghj 7 asdf gh 5 aa sd ff gg 10 c1に =MAX(IF(MID(A1,ROW(A1:A15),1)=" ",ROW(A1:A15),0)) と入れてSHIFT+CTRL+ENTERの三つのキーを同時押しする。配列数式。 その式を+ハンドルで引っ張る。 結果 上記の通り。 #4の=RIGHT(A1,LEN(A1)-FIND(" ",A1)) に変えて =RIGHT(A1,LEN(A1)-C1) この式を下方向に複写する 最終結果 ghj gh gg 後は#4と同じ。

12banna
質問者

お礼

難しくてまだよくわかりませんが、教えてくださったとおりにやってみたところ、うまくできました。 ありがとうございます。 (「ROW(A1:A15)」というところは「ROW($A$1:$A$15)」にしてみました。)

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.4

空き列に =RIGHT(A1,LEN(A1)-FIND(" ",A1)) と入れてデータ行数だけ式を複写する。秋列をコピーし形式を選択して貼り付けで関数式を消し、その列でソートする。 ソートは、エクセルの場合、お節介機能の、ふりがなや特殊順序(例日月・・)で並べ得る以外は、実際にそのデータを、セル・列に作らないと並べ替えられません。 だから、いかにしてそのデータ列を作るかの質問になります。 上記は名と姓の間が半角スペースに統一されていることが必要です。

12banna
質問者

補足

No1への補足と同じです。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.3

次の方法は如何でしょうか。 ・B列を右クリック→挿入 ・A列をクリック→データ→区切り位置→「スペースによって・・・」を選択→次へ→完了  これで姓名が2セルに分離できます ・B1を選択→データ→並び替え→OK ・姓名の結合は、  例えばD列に=A1&" "&B1とし、下方向にコピー  D列をコピーし、A列に形式を選択して貼り付けで値を選択して貼り付けて下さい。 ・最後に不要なB,D列は削除して下さい。

12banna
質問者

お礼

このような機能があることは知りませんでした。 他にも応用ができそうです。 丁寧に教えてくださりありがとうございました。

12banna
質問者

補足

No1への補足と同じです。

  • telescope
  • ベストアンサー率54% (1069/1958)
回答No.2

A列をコピーして空いた列に貼り付けます。 たとえば、C列に貼り付けたとして、C列のみを選択して 「データ」-「区切り位置」で「カンマやタブなどの~」を選択して「次へ」ボタンを押します。 「スペース」にチェックを入れて、「完了」ボタンを押します。 C列に名前、D列に姓というように分かれます。 「データ」-「並べ替え」でD列を最優先するキーに指定します。

12banna
質問者

お礼

このような機能があることは知りませんでした。 他にも応用ができそうです。 ありがとうございました。

12banna
質問者

補足

No1への補足と同じです。

回答No.1

C列に =RIGHT(A1,LEN(A1)-FIND(" ",A1)) として苗字の列を作って、並び替えればいいんじゃない?

12banna
質問者

お礼

しゃれたやり方を教えてくださりありがとうございました。

12banna
質問者

補足

早速の回答ありがとうございます。 教えて下さった方法で大体うまくいくのですが、中には「Alban Maria Johannes Berg」「Wolfgang Amadeus Mozart」のように、4つ、3つに区切られるようなものがあり、これらも含めて一発でできる方法はないでしょうか。

関連するQ&A