• ベストアンサー

エクセル2000で数字のソートについて

以下は、エクセル2000でソートした結果です。 先頭はタイトル行で、各セルの[']は削除済みです。 ------- 図形ID 1410619 → (1) 1410620 → (2) 0010101 → (3) 0010102 → (4) 1550719 → (5) 1550720 → (6) ------- 期待した結果(右の番号で言えば3,4,1,2,5,6の順)とは異なります。 (1)と(2)のセルで、[F2]KEYを押してセル内で編集可能にしてから 何もせずに[Enter]を押し、再度ソートすると何故か期待通りの結果が 得られます。 数百行ある場合、いちいちセルごとに「[F2]を押して何もせずに[Enter]」 などやってられませんので、他に何かいい方法はないでしょうか? ※表示形式=文字列 です。先頭の"0"は必要です。

  • ogi1
  • お礼率95% (23/24)

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

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

おかしな結果で、回答しずらいですね。 ーー 大切なことが質問に書いてないのでは? このデータは、何か外部データを取り込んだのではないですか。 時どき似た質問があったようだが、文字列の先頭のプレフィックス がややこしいのでは。 ーー 下記以外の良さそうな回答が出れば、下記は無視してください。 >F2]KEYを押してセル内で編集可能にしてから 何もせずに[Enter]を押し、再度ソートすると エクセルの入力値はできるだけ数値化するという仕組みで、数値化するからでしょう ーー 下記は上から5行ぐらいでどうなりますか? =TYPE(A1)を空き列に入れて、 結果は文字列の2になりますか。 =CELL("prefix",A1)を空き列に入れて、結果は’ですか。 ーー 書式を見るため VBEの標準モジュールに下記を貼り付けてどうなりますか。 Sub test01() For i = 1 To 10 Cells(i, "Z") = Cells(i, "A").NumberFormat Next i End Sub を実行してみてください。 空き列をZ列と仮定しています。 結果が@ ですか。 -- 10行ぐらいで下記をやってみて、うまくいけば(ソートできれば)、下記を全行対象にやってみてください。 Y列を空き列と仮定してます。 For i = 1 To 10ーー>For i = 1 To 500(最終行) ーー Sub test02() For i = 1 To 10 Cells(i, "Y").NumberFormat = "@" Cells(i, "Y") = Format(Val(Cells(i, "A")), "0000000") Next i End Sub

ogi1
質問者

お礼

データは何年もの間、色んな方が色んな方法で登録をしたものです。 =TYPE(A1),=CELL("prefix",A1) を実行すると以下のようになりました。 ※データは質問時と異なりますが、ソートがおかしいのは同じです。 図形ID、=type、=cell 1310101、1、 1310102、1、 0060601、2、' 0060602、2、' 1550719、2、' 1550720、2、' Sub test01() を実行すると、Z列に"General"表示されました。 Sub test02() を実行してY列に表示されたものをソートすると うまくいきました!色々と知らない関数が使われていて因果関係が よく分からないですがヘルプを見て勉強してみます。 ご回答ありがとうございました。

その他の回答 (3)

noname#204879
noname#204879
回答No.4

お示しのデータですが、左揃えに書式設定した場合に、(3)~(6)のデータは下図のように1文字分右側にずれていませんか?  図形ID  1410619 → (1)  1410620 → (2)   0010101 → (3)   0010102 → (4)   1550719 → (5)   1550720 → (6)

ogi1
質問者

お礼

左揃え、右揃え、中央揃えのどれでもないときに、以下のようにずれます。 図形ID  1410619 → (1)  1410620 → (2) 0010101 → (3) 0010102 → (4) 1550719 → (5) 1550720 → (6)

  • hayasi456
  • ベストアンサー率40% (2402/5878)
回答No.3

色々な並び替え(ソート)方法があるようです。 http://excel.syuriken.jp/data-1.htm http://www.eurus.dti.ne.jp/~yoneyama/Excel/sort.html#syoujyun

ogi1
質問者

お礼

ご回答ありがとうございました。

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

その列を選択して、「データ」「区切り位置」で「次へ」「次へ」 列のデータ形式で文字列を選択して完了 その後に並び替えで駄目でしょうか?

ogi1
質問者

お礼

できました!ご回答ありがとうございます。

関連するQ&A

  • Excelでセルを次の行の先頭の列に移動させる方法を教えてください。

    Excelでセルを次の行の先頭の列に移動させる方法があれば教えてください。 例えば、A1、B1、C1と順に入力し、C1のセルでEnterキーを押すと次の行の先頭列A2に入力セルが移動されるといった場合です。

  • Excel VBA UsedRange範囲ソート

    図のような中抜の一覧ができているとき、商品コードで空行を飛ばして並び替えをしたいのですが、下記だと空行まで(チョコからわたがしまで)しか対象になりません。 ---------------------------- Sub 並べ替え() With ActiveSheet.Sort .SortFields.Clear 'Key:=Range("A3")でソートする列とタイトル位置を指定 .SortFields.Add Key:=Range("A3"), SortOn:=xlSortOnValues, _ Order:=xlAscending '.「商品コード」("A3").でソート .SetRange Range("A3").CurrentRegion ' 先頭行をタイトル行と見なす .Header = xlYes .Apply End With End Sub ------------------------- 範囲をCurrentRegion ではなくUsedRangeに広げるには、どこをいじったらいいでしょうか。 求める結果としては「商品コード」の列が登り順に揃ってほしいのです。 データ処理としてはソートをかければいいだけですが、UsedRange(範囲内のセルを選択し、Ctrl+Shift+Endキーで選ばれる範囲)をみつけてソートをかける方法を知りたいのです。

  • ExcelVBAで配列をSORT

    任意の範囲の内容を読み込んだ2次元配列に入っているデータをワークシートでのSORTのように任意のキー列(第3優先まで)で任意の順(昇降)でSORTするにはどのような命令を実行すればいいか教えてもらえませんか? なお、先頭行はデータ、もちろんキー以外の列のデータも同時に並べ替えをしたいのですが?

  • エクセル、並び替え正しくソートしない。

    エクセルで並べ替えを行おうとすると、「並べ替えの前に」 次の並べ替えのキーにはテキスト形式の数値が含まれているため、 正しくソートできません、会員コード と出ます。 この会員コードは文字列で001~260行程有ります、最初250行 作成後数ヵ月後に追加した行がテキスト形式に成ったのだと思います、 これが正しい位置に並ばない原因のようですが、 どの様に修正するのか方法をご教授お願いします、 OS:XP エクセル2003 ちなみに001~+で260までドラックしても列を文字列に指定しても問題のセルは改善されない、

  • エクセルでのソート

    エクセルでセルの背景色でソートさせたいのですがどのようにすればいいのでしょうか。(色別のソート順はユーザで設定した順番で行ごと) 宜しくお願いします。

  • Excel 2000でソートさせようとすると・・・

    何時も皆さんの明確な回答感心するばかりです。  質問ですが、Excel2000で住所録を作りました。同窓会用なので1つのブックに3枚のシートがあり、それを増やして6枚にして1組から6組までとしました。各シートの1列目に名前、〒、住所、電話、メルアド、てな感じで入力してその下に各人をどんどん入れていきました。ここまでは良かったんですが、各項目でソートをかけたところ2枚目(2組)だけはどんなにソートをかけても1列目はソートされないのに、他のシートは1列目まで一緒にソートされてしまいます。 色々本を見たり会社の得意そうな人に聞いたりしてみましたが、答えが返ってきません。自分なりにいじって見た所、データ→並べ替え、と見ると2枚目は範囲の先頭行がタイトル行に2枚目以外は範囲の先頭行がデータにチェックが入っています。これを換えてOKとするのですが保存されない様で又すぐもとに戻ってしまいます。(表現は正しいのかな?) おそらくこれが原因だと思うのですがどう直すのか、はたまた私がヘンなことしているのかよく解りません。どのシートも同じように造ったつもりなんですがどなたか、教えて下さい。ヘ(x_x;)ヘ

  • Excel VBA sort で困ってます。(初心者です)

    Excel VBA sort で困ってます。(初心者です) 行いたい事は、曜日別時間別にsortして印刷をするをやっていますがsortがうまくいきません。 sort範囲指定後、key1にRange(a1:f1) 列は月(a)~土(f) セルは時間が入っています(入っていないセルも存在します) sort後、ブレイクポイント指定して、シートを確認したが、月(a)の列のみsortされ、それ以降のsortができていません。願わくは、正しいロジック又は、どこがおかしいのか教えて頂けたら幸いです。宜しくお願い致します。

  • エクセルで横方向でのソート、または条件を満たすセルの値を表示する関数ありますか?

    A,B,C,D,E列に文字列が入っており、 F列にはA~Eの中で先頭文字が(1)のセルの値を表示 G列にはA~Eの中で先頭文字が(2)のセルの値を表示 H列にはA~Eの中で先頭文字が(3)のセルの値を表示 I列にはA~Eの中で先頭文字が(4)のセルの値を表示 J列にはA~Eの中で先頭文字が(5)のセルの値を表示 させたいのですが、F~J列にはどんな関数を入れれば良いでしょうか? 横行でのソートをするのと同じ意味になると思うのですが、 先頭文字順に拾い出したいのです。 よろしくお願いします。

  • エクセルでのソートについて

    エクセルのソートがうまくいきません。 SHP-1 SHP-10 SHP-100 というセルをソートしたいのですが、 文字列がはいっているようです。 文字列の書式を数値に変更し、さらに 空白セルに数値「1」を入力してコピー し、形式を選択して貼り付けの、演算の 乗算。という方法で書式を変更しましたが ソートがうまく出来ませんでした。 何かいい方法はありますでしょうか?

  • excel ソート(容量大?)すると 2分割でソートされるけど解決方法は

    500行25列くらいのデータを、ある列の種別順でソートすると全部の行が一度にソート出来ずに、途中まで行くとそこから再度ソートされます (例)名前あいうえお順でソート 1 青山 2 木村 ー 200 和田 201 青木 202 川村 ー 500 和久 本当は1~500行まで通じてソートしたいのですが、なぜか途中でソートが分割されてしましいます。何か一度にソート出来る容量等の制限が有るのでしょうか。初心者なので出来るだけ簡単に教えてください 宜しくお願いします。

専門家に質問してみよう