• ベストアンサー

EXCELで並べ替えがうまくいきません

EXCELで他人からもらった数値が入っているデータに追加して入力をして、その数値の列をキーにして並べ替えをしたのですが、最初のデータとの比較がされていないようです。書式はどちらも「標準」にしています。(スタイルに設定されている書式を見ても全く同じになっています) そこで、列全体の書式を「数値」にしてやり直したのですがやはりうまくいきません。あとから入力したデータは「数値」で認識されていますが、元のデータは「文字列」のままのようなのです。よろしくお願い致します。

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

  • ベストアンサー
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.1

こんにちは。maruru01です。 文字列として認識されるということは、書式を「標準」にしても「数値」にしても、セル内で左寄せになるということですか。 ちなみにそのデータに対して、ISNUMBER関数を通してやると、数値かどうか判定出来ます。 考えられるのは、 1.先頭に文字列を表す「'」が付いている 2.不要なスペースが入っている 3.何らかの制御文字が入っている などです。 1.の場合は、VALUE関数で数値に変換すればOKです。 2.の場合は、前後にスペースが付いているならTRIM関数でスペースを削除出来ます。間にスペースがある場合は見た目で分かると思いますが。 3.の場合は、VBAを使わないと難しいでしょう。

take103
質問者

お礼

早々とアドバイスいただき有難うございます。maruru01さんのご指摘で1と2には該当しませんでしたので3のようですね。(難しそう(^_^;ゞ )でもVALUE関数で変換したらうまく出来ました。実は社員番号の並べ替えで例えば、01003、02012・・・のように先頭に0が入りますので文字列のまま並べ替えをしたかったのですが・・これも関数を使えば書式を統一できそうですね。本当に有難うございました。

その他の回答 (5)

  • comv
  • ベストアンサー率52% (322/612)
回答No.6

再び こんばんは >実は社員番号の並べ替えで例えば、01003、02012・・・ >のように先頭に0が入りますので文字列のまま並べ替えを >したかったのです 文字列のままにしたいのでしたら「追加する入力データ」 も文字列にすればよろしいのでは? 既に数値で入力済みの場合 ・目的の列を選択 ・メニューの 区切り位置 次へ 次へ 列の表示形式  文字列にチェック 完了 これで選択した列のデータも書式設定も文字列になります

take103
質問者

お礼

comvさん、お返事が遅れてすみません。区切り位置の設定画面を使っていろいろな書式設定ができるのですね!大変参考になりました。

  • Fuu1962
  • ベストアンサー率29% (426/1425)
回答No.5

答えとしては、数値ではなかったようですね。 数値でないものに、書式で数値としても変化はないはずです。 さて、数値に変換できたとして、「01003」みたいにしたいようですが、 書式のユーザー定義で、設定する桁数分0を入れればいいみたいです。 6桁の場合「000000」というふうに。 もちろん並べ替えも使えますよ。 やってみてください。

take103
質問者

お礼

Fuu1962さんアドバイスありがとうございます。書式のユーザー定義で表示する方法もあるのですね!大変参考になりました。

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

見た目は数字文字ばかりなんですね。自分で入力すると全角でも、アラビア数字なら、数と認識し、数値に直すようです。数字文字に対しても、四則演算が可能で、結果は 純然たる数値になるようです。 貰ったデータの数値(A列にあるとして)を使って=空き列に「=A1+0」の計算が出来ますか。 貰ったデータはCSV形式でしたか。 ソートの操作は、ソートキー列だけでなく、「全列」範囲指定して、入っているでしょうね。

take103
質問者

補足

imogasiさん、ありがとうございます。もらったデータ形式は不明ですが、「A1+0」の計算は出来ました。ソートの範囲指定は全体で指定しています。実は社員番号の並べ替えで例えば、01003、02012・・・のように先頭に0が入りますので文字列のまま並べ替えをしたかったのですが・・やはり、一度数値に統一してから関数を使って文字列にするしかほうほうはないみたいですね。

  • comv
  • ベストアンサー率52% (322/612)
回答No.3

こんにちは 1列単位であれば ・列選択 ・メニューのデータ 区切り位置 完了 複数行列範囲であれば ・空いているセルに 1 と入力 それをコピー ・データ範囲を選択 ・メニューの編集 形式を選択して貼り付け  値 と 乗算 をチェック OK で標準書式設定上(文字列設定以外)での文字列の 数字を数値に変換できます 試してみて下さい

take103
質問者

お礼

早々とアドバイスいただき有難うございます。このような方法もあるのですね。実は社員番号の並べ替えで例えば、01003、02012・・・のように先頭に0が入りますので文字列のまま並べ替えをしたかったのですが・・これも関数を使えば書式を統一できそうですね。本当に有難うございました。

回答No.2

 元のデータが全角で入力されていませんか? セルに直接ではなく、上部の入力ラインから入力すると、全角で入力することもできてしまいます。  全角と半角はちょっと見ではほとんど区別がつきません。よーく見比べれば、違いがわかります。

take103
質問者

お礼

早々とアドバイスいただき有難うございます。いろいろ試してみましたが、どうやらmaruru01さんのご指摘の制御文字が入っているようです。