- ベストアンサー
エクセルで文字が混じった数字を並べ替えしたいのですが
どなたか、お力お貸し頂けませんか? 一言でも、アドバイス頂ければ幸いです!! エクセルで、製品の機番の並び替えをしたいです。 111234 223452 123A11 123B23 455A67 こんな感じで、機番が並んでいます。(本当は10桁だけどわかりやすくするため減らしてます) 困ったのは、機番にアルファベットが混じっているので、単純に照準で並べ替えると、アルファベット混じりでない数字のみが先にきて、アルファベット混じりが後に続くことです。 実は、アルファベットの前の数字を基準に並べ替えたいのです。(そして更に、アルファベット前の数字が同じな場合、以降のアルファベットはABC順に並べたい) 私が考えた方法は、 LEFT関数を使って、アルファベット前の数字だけ出して、(幸いなことに、アルファベットのある場所が、最初から4番目と決まっています、なので、これが使えると思って)、それを基準に昇順に並べ替える方法。 隣の列には、アルファベット含む全10桁の機番をそのまま付けておけば、これで自然と、アルファベットもABC順になってくれるみたいなので。 そして更に、アルファベットの混じっている機番だけが左詰めになってしまうので、数字のみの機番と見やすく揃えるため、セルの書式設定で、右か左のどちらか詰めに直します。 これでも、できるはできると思うのですが・・ このやり方では?という方法や何かアドバイスいただければ、とっても幸いです。 (機番が全部で1000個以上あって、これから私が在庫管理をまかされる機番の種類は、アルファベットが2個混じってるものや、混じってる位置もばらばらなものもあるようです><;アルファベットが最初と最後から3番目に混じってる機種とか・・(++;)今回はとりあえず、最初から4桁目がアルファベットの機種の機番のやり方だけでもと思い、ご相談させて頂きました) どうぞ宜しくお願い致しますm(__)m
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
「(そして更に、アルファベット前の数字が同じな場合、以降のアルファベットはABC順に並べたい)」 についての回答がないので補足します。 仮にA列に機番が入力されているとして、 1.まず機番の後にB列以降に7列以上挿入します。 2.10桁の機番を念のため、半角に揃えるならASC関数、全角に揃えるならJIS関数、を使って、機番を半角か全角に揃えます。そして、B列の計算結果をコピーして、C列に形式を選択して貼り付け→値を選択して貼り付けます。 3.C列を選択して、データ→「区切り位置」をクリックします。 4.「区切り位置指定ウィザード 1/3」のダイアログボックスが出てきたら、 “スペースによって右または左に揃えられた固定長フィールドのデータ” の右のオプションボタンのほうを選択して、右下の「次へ>」をクリックします。 5.「区切り位置指定ウィザード 2/3」のダイアログボックスで、 アルファベットのある4文字目の前後をクリックして、 2つの区切り位置を作成します。 6.「区切り位置指定ウィザード 3/3」はそのままで、「完了」をクリックします。 7.これで、C、D、E列に機番が分割されました。 8.データ→並べ替えをクリックして並べ替えダイアログボックスを出して、 最優先されるキーを‘列C’(前3桁の数字部分) 2番目に優先されるキーを‘列D’(アルファベットの部分) にして「OK」をクリックして、並べ替えをします。 9.並べ替えは完了しましたが、機番が3列に分かれてしまっているので、 F列に、CONCATENATE関数を使って、 引数を同じ行のC列、D列、E列を選択します。 10.出てきた(くっついた?)計算結果を、G列に 形式を選択して貼り付け→値を選択して貼り付けます。 11.不必要な列を削除します。 面倒と思うでしょうが慣れると思います。いかがでしょうか。 なお、余談ですが、Excel2002以降では、セルの書式を事前や事後に“文字列”にしてもエラーチェックが出てしまいますので、 出てきたエラーチェックのインジケータを残して無視するか、 ツール→エラーチェックのダイアログで「無視」をクリックしまっくって消すか、 ツール→オプション→「エラーチェック」タブで“バックグラウンドでエラーチェックを行う”のチェックボックスをオフにするしかないです。
その他の回答 (4)
- a987654
- ベストアンサー率26% (112/415)
NO1の方の回答で答えは出ている様ですが、今後の為に一言。 現在の問題は、ソートしようとしている列の書式が”標準”に なっていて、数値と文字列がセル毎に混在した状態になっている ことにありあります。 従って、データを入力する以前にソートに使うセル全部に対し、 書式を”文字列”に指定しておけば、入力した時点で自動的に ’が数字の先頭に付いて全て文字列データになります。
お礼
お礼が遅くなり申し訳ございません!大変参考になりました。どうも有難うございました!
- lovesens
- ベストアンサー率30% (48/158)
2度目の投稿です。 1000個以上を見逃しておりました。それじゃあ「'」のやり方は疲れますね。 これででどうでしょう。 A列にデータが並んでいるとして… 1.B列を選択して右クリック。 セルの書式決定でB列をすべて文字列にする 2.A列を選択してコピー B列を選択して「形式を選択して貼り付け」→値 3.B列を並べ替えすると、文字列になっているので 111234 123A11 123B23 223452 455A67 と並べ替えられます。
お礼
有難うございます!! ふむふむ文字列にするというところがポイントなのですね。 更にここから数字の機番のみを抽出するとか、はたまたアルファベットの付いている機番のみを抽出するとかって(また並び替える)できますでしょうか? あっ、数値のみだったら、普通に昇順で並べ替えると、数値のみからばーっと並ぶから、それで良いのかナ。 アルファベットだけを取り出す方法は・・私の考えた方法だと、アルファベットのついてるものだったら、オートフィルタで”Aを含む”で取り出してから更にそれをコピペして並べ替える方法なのですが・・ これだとA、B、C、、とひとつづオートフィルタオプションでみていかなければならないのと、数値の中にAが二つ混じってる場合だったらちょっとややこしいので、どうでしょう。 質問がそれて失礼しましたが、もしまた思いついた点ございましたらお寄せ頂けましたら幸いですm(__)m 取り急ぎお礼まで。どうも有難うございます!!^^
- lovesens
- ベストアンサー率30% (48/158)
イレギュラーな操作になってしまうかもしれませんが、 111234 223452 123A11 123B23 455A67 の各文字列の頭に'をつけて並べ替えしてみてはいかがですか? 私のPCでは 111234 123A11 123B23 223452 455A67 と並べ替えられました。
お礼
どうも有難うございます!! 'は手入力でつけるのでしょうかもしや? 一辺に付ける方法があるでしょうか?
- mcin2
- ベストアンサー率19% (5/26)
機種が入力されている列の書式が数値と文字の混合になっているかと思います。そこで「=TEXT(A1,"###")」の式を入力した列を隣にでも作成すると全て文字列扱いになりますので、その列をキーにソートをかけると選択ボックスが表示されるので「数値とテキスト形式の数値と分けて並べ替えを行う」を選ぶとソートできるのではないかと思います。
お礼
なるほどできますね!!これで多分ばっちりできます 多分今度はアルファベットのついてるものだけ抽出して並べ替えしろとか、数値のみのものだけ抽出して並べ替えろとか指令が出てくると思いついてしまいました、、それがちょっとわかりませんが; 本当に有難うございます!!取り急ぎお礼まで。
お礼
お礼が遅くなり申し訳ございません!CONCATENATE関数大変役立ちました。大変助かりました。どうも有難うございました!