• ベストアンサー

エクセルで名前順、更に番号順に並び替えたい。

画像のようなエクセルのデータがあります。 これらを 鈎取なら鈎取で、土手内は土手内で、番号の早い順に並び替えたいのです。 鈎取が先でも土手内が先でも西多賀が先でも構いません。 ちなみに数字の入力位置がまちまちなのはまずいでしょぅか? こちらも統一性を持てるよう直せたら、なんて思うのですが。 よろしくお願いします(><”)

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

  • ベストアンサー
  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

> ちなみに数字の入力位置がまちまちなのはまずいでしょぅか? > こちらも統一性を持てるよう直せたら、なんて思うのですが。 今後のためにも、文字列部分(「鈎取」など)と数字部分(「219」など)は 別々のセルに持つことを強くオススメします。 とりあえず、現状の一緒になったモノの分け方の一例です。 まずは、行挿入で空のB・C列を作ります。   B3セル:=MID(A3,1,FIND(" ",ASC(TRIM(A3)))-1)   C3セル:=VALUE(MID(A3,LEN(B3)+1,999)) B3セルの「"スペース"」のスペースは、半角で指定します。 面倒ならこのままコピー貼り付けでもOKです。 で、これを下までズズっとフィルして、B・C列全体をコピー、 B・C列全体に 形式を選択して貼り付け→値を貼り付け で分割されます。 これでA列は削除してもOKです。 あとは、これをB・C列で並べ替えて完了です。 2003以前ですね。だとしたら 表の範囲を全部選択し、データ→並べ替え。   データ範囲の先頭行:データに●   最優先されるキー:文字列の列(A列を想定)、昇順   2番目に優先されるキー:数字の列(B列を想定)、昇順 でOKを押すと並べ替わります。 > こちらも統一性を持てるよう直せたら 現状のままでいわゆる「統一性」を持たせたいと言うのであれば、 まず考えられるルールは「文字と数字の間にはスペース1個」でしょうか。 だとすると「=ASC(TRIM(A3))」これで半角スペース一つに出来ます。 が、これではやはり並べ替えで問題が出てしまいます。 やはり、文字部分と数字部分は別々に持った方が良さそうです。

yukirin_s
質問者

お礼

できましたっ!! 名前と数字分けたらスッキリなんですね! ありがとうございました!!

その他の回答 (5)

回答No.6

一応お約束、 ソートしたい文字列は、前半の地名?は漢字だけ(というより英数字記号いずれもなし)、後半が数字だけの番地?で構成。 番地と間の空白文字は、全半角、グッチャグッチャ、大いにケッコウ、、、 ゼイタクにも3列使う。 F列:スッキリさせた文字列 G列:地名?だけ H列:番地?だけ F3: =SUBSTITUTE(TRIM(ASC($A3))," ","") G3: =SUBSTITUTE($F3,$H3,"") H3: =IF($A3="","",RIGHT($F3,LEN($F3)*2-LENB($F3))*1) F3~H3まとめて下にコピー で、G列とH列をキーにしてソートする、、、

yukirin_s
質問者

お礼

そういう方法もあるんですね!! ありがとうございます♪ 時間があるので今後のために今から色々教わったことを練習してみたいと思います♪

  • bon459
  • ベストアンサー率36% (4/11)
回答No.5

No.1です。私の並べ替え方はその列だけ並べ替えてしまうため、 正しくありませんでした。 質問者様の並べ替えのやり方で問題はありません。 0を付与しても並び替えが上手く行かないのは空白の数や全角半角の違いによるものかと 思います。 (補足に記述されていた名称と数値を空白をキレイにそろえて並べ替えるときれいに並びました) セルを分割して並べ替えが上手く出来たみたいですので、そちらのやり方をオススメします。

yukirin_s
質問者

お礼

ありがとうございます! やはり空白とか綺麗に揃えないと・・・なんですね! 早々のコメ、ありがとうございました♪

noname#204879
noname#204879
回答No.4

[No.3]の誤謬訂正、 「D2 に次式を」は「D3 に次式を」に訂正します。 それから、書き漏らした「次式」は次のとおりです。 =LEFT(TRIM(ASC(A3)),FIND(" ",TRIM(ASC(A3)))-1)&TEXT(MID(TRIM(ASC(A3)),FIND(" ",TRIM(ASC(A3)))+1,99),"000")

yukirin_s
質問者

お礼

ありがとうございます(*^▽^*) D2→D3は、多分そうだろうな、と思ったので大丈夫です! 色々な式があるんですねー。 勉強になりました!! 後で試してみます♪

noname#204879
noname#204879
回答No.3

添付図参照 空き列(例えば列D)のセル D2 に次式を入力して、此れを下方にズズーッとドラッグ&ペーストした後で、列Dを最優先で[並べ替え]してみてください。 ただし、列Aの左側の文字列と右側の数字との間には必ずスペースがあるものと仮定しています。

yukirin_s
質問者

お礼

ありがとうございますっ!! これならセル内に数字と両方おさまりますね!! 拝見するのが遅くなってしまって(T-T) また表を作る予定ので、こちらも実践してみます! ありがとうございました♪

  • bon459
  • ベストアンサー率36% (4/11)
回答No.1

A列を列選択してA→Zの昇順で並べ替えボタンをクリックすると並び変わります。 ただ、A列に鈎取 nnと文字+数値となっていますので、今のままでは120より60の方が後になります。 正しく数値として並べるには数値部分だけを隣の列に抜き出してA、B列を選択してから並び替えるか、 60を060というように文字としてきれいに並ぶようにA列の数値を書き換える必要があります。

yukirin_s
質問者

補足

ありがとうございます! 数字は060などと書き換えてやってみたのですが 鈎取 068 鈎取  219 土手内 015 土手内 036 土手内 041   ・   ・   ・ 西多賀 035 西多賀 039   ・   ・   ・ 緑が丘 090 鈎取 127 鈎取 141   ・   ・   ・ などという感じで、鈎取の2つだけが最上段にきてしまって ちょっとうまくいきません。 並び替え方が悪いのでしょうか? ちなみにA~Dまで、表全部を範囲指定して データ→並び替え→最優先されるキーを列Aにして データ範囲の先頭行を「データ」のままにしてみました。 >A列を列選択してA→Zの昇順で並べ替えボタンをクリック これとは少し違いますが、これをやるにはどうしたらいいのかわかりません(T-T)