• ベストアンサー

外国人の名前の並べ替え

エクセルで1つのセルに外国人の名前が以下のように入っています。 Daniel Rumokach Fuad Amin Guillermo Igor Jim Leighton Seil Sullivan ・ ・ ・ ・ 左が名前で右が性なんですが、 これをそのままソートかけると、Daniel Rumokachが一番先頭にくるところを「性」でソート、 つまり、Fuad Aminが一番先頭にくるようにしたいのです。 さらに、ミドリネームがある人もいるので、その人も最後の単語(性)でソートかけるようにしたいんですが、どうしたらいいでしょう??

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

  • ベストアンサー
  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

名前がA列として 区切りが、半角の空白として、B1に =IF(ISERROR(MID(A1,FIND(" ",A1)+1,100)),A1,MID(A1,FIND(" ",A1)+1,100)) 右に、1個フィル、下フィルすると、 B列にMiddle Name+Last Nname(或いは、Last Nameのみ) C列にLast Name が表示されると思いますので 後は、並び替えの順位にC列、次はB列、或いはA列で並び替えればと 思います。

t-to
質問者

お礼

↑お礼のつもりが、補足のところに入力しちゃいました。 失礼しました。

t-to
質問者

補足

回答ありがとうございます。 望みどおりの作業が出来そうです。 私には使い方の解らないエクセルの関数がまだまだ多くて・・・。

その他の回答 (3)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんばんは。 一般的には、区切り位置で、空白を区切ってあげればよいだけだと思います。 右端の「姓」を出すだけですからね。 ただ、あえて、配列数式で作ってみました。「,(コンマ)」で区切られた、前側が、Family Nameで、後ろ側が、Given Names になります。 =MID(A1,COUNT(INDEX(FIND(" ",A1,ROW(INDIRECT("A1:A"&LEN(A1)))),,))+1,255)&", "&MID(A1,1,COUNT(INDEX(FIND(" ",A1,ROW(INDIRECT("A1:A"&LEN(A1)))),,)))

t-to
質問者

お礼

回答ありがとうございます。 ちょっと式が長すぎて・・・。 もう少し勉強してみます。

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

コンピュタのソートは、ソートキーを作って、後は文字コード順に並べるだけの機能しかありません。 エクセルでフリガナでソートとかユーザー設定などができたので、エクセルから学び始めた人には、却って本質が、ぼやけてしまっている。何かエクセルなら1発設定や、関数のあるもので便利な方法があるかと質問をするらしい。それは無い。 ーー すなわち修正氏名を、どこかの列に作らないとどうしようもない。 ーー そこまでわかっている人なら スペースの後の部分か 第2スペースの後の部分を切り出すのはどうするか という質問になるはず。 ーー 第1スペースの後は Find関数でスペースの位置がわかるので =RIGHT(A1,LEN(A1)-FIND(" ",A1)) ーー 塊が3つの場合は A列      B列     C列 aaa bbb ccc bbb ccc   ccc dddd ff ff ff as dfg dfg dfg zxc dfgh dert dfgh dert   dert B1は =RIGHT(A1,LEN(A1)-FIND(" ",A1)) B4まで式を複写 C1は =IF(ISERROR(FIND(" ",B1)),B1,RIGHT(B1,LEN(B1)-FIND(" ",B1))) と入れてC4まで式を複写。 結果 上記の通り 列C、B、Aの優先度でソートする。 B,Cの関数はネスとして1つにできるとおもう。 また違う解き方もあるかもしれない。 範囲選択 データー区切り位置ースペース・・で各セルに分離しての方法も使えるかも知れない。 ーー VBAでやるのも、(スペースで)Split関数という便利なものがあるので簡単です。 ーー 区切りは半角か全角か統一すること。 上例は半角の場合の例。

t-to
質問者

お礼

回答ありがとうございます。 関数の解説もして頂きまして、非常に勉強になりました。

noname#204879
noname#204879
回答No.2

         A           B 1    Daniel Rumokach    Rumokach, Daniel 2    Fuad Amin       Amin, Fuad 3    Guillermo Igor    Igor, Guillermo 4    Jim Leighton     Leighton, Jim 5    Seil Sullivan     Sullivan, Seil 6    Hannah Taylor Gordon Gordon, Hannah Taylor 7    Jerry O'Connell    O'Connell, Jerry 8    Bridgette L. Wilson  Wilson, Bridgette L. B1: =MID(A1,FIND("_",SUBSTITUTE(A1," ","_",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+1,99)&", "&TRIM(SUBSTITUTE(A1,MID(A1,FIND("_",SUBSTITUTE(A1," ","_",LEN(A1)-LEN(SUBSTITUTE(A1," ",""))))+1,99),""))

t-to
質問者

お礼

回答ありがとうございます。 できれば「コンマ」は使わない方向で作業を進めたかったのです。 説明がたりなくてすいません。

関連するQ&A