- ベストアンサー
エクセルの並び替えで順番どうりにならない
エクセル2003です。 並び替えでA列を対象にして 以下のように並び替えたいです。 A1 A2 A3 A4 A5 A6 A7 A8 A9 A10 A11 A12 A13 B1 B2 B3 B4 B5 B6 B7 B8 B9 B10 B11 B12 ですが並び替えを実行すると A1 A10 A11 A12 A13 A2 A3 A4 A5 A6 A7 A8 A9 B1 B10 B11 B12 B2 B3 B4 B5 B6 B7 B8 B9 となってしまいます どのような方法がありますか。 よろしくお願いします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
NO1の方の(2)を数式で対応する方法です。 並び替えを行いたいデータがA列、A列の文字をB列に抽出、C列には数値を抽出するものとします。 C1式=IF(ISERROR(FIND("-",A1)),MID(A1,MIN(FIND({0,1,2,3,4,5,6,7,8,9},ASC(A1)&"0123456789")),LEN(A1)),MID(A1,FIND("-",A1),LEN(A1)))*1 B1式=SUBSTITUTE(A1,C1,"") A~C列のデータを選択し、並び替えで第一優先をB列、第二優先をC列を実施します。 並び替え終了後B~C列データを削除 添付画像はエクセル2007ですので2003の並び替え画像に置き換えて下さい。
その他の回答 (5)
- KURUMITO
- ベストアンサー率42% (1835/4283)
回答No4です。 先の式よりも次のようにしてください。 A1セルから下方にお示しのデータが入力されているとしてB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",CODE(LEFT(A1,1))*100+MID(A1,2,2)*1) B列を重点に昇順で並べ替えを行います。
お礼
できました。 やはり、空き列を利用して元データを並べ替えように 変換して、行うしかないのですね。 ありがとうございました。
- nicotinism
- ベストアンサー率70% (1019/1452)
先頭がアルファベット一文字で、その後に続く数字が三文字以内なら 並び替え用の補助列を何処かに 式を、=LEFT(A1) & TEXT(MID(A1,2,3),"000") とすれば、A1→A001、B10→B010 などのようになりますので これを並び替えの列としてやれば良いのでは? Excel2010で検証、2003では確認不可です。
お礼
できました。 やはり、空き列を利用して元データを並べ替えように 変換して、行うしかないのですね。 ありがとうございました。
- KURUMITO
- ベストアンサー率42% (1835/4283)
A1セルから下方にお示しのデータが入力されているとしてB1セルには次の式を入力して下方にドラッグコピーします。 =IF(A1="","",CODE(LEFT(A1,1))*100+CODE(MID(A1,2,1))+IF(LEN(A1)=3,CODE(MID(A1,3,1)),0)) B列を重点に昇順で並べ替えを行います。
お礼
できました。 やはり、空き列を利用して元データを並べ替えように 変換して、行うしかないのですね。 ありがとうございました。
- NukoTarou
- ベストアンサー率29% (5/17)
アルファベット部分は1文字 数字部分は2桁まで、と言う条件が確定なら A01 A02 A03 ・・・・・ A10 A11 ・・・・ B01 B02 ・・・・・ とかですかね。 アルファベットは2文字、数字は3桁まであり得る、と言う場合は、 0A001 0A002 0A003 ・・・・・ 0A010 0A011 ・・・・ 0B001 0B002 ・・・・・ とでもします。 このように、 「アルファベット部分」と、「数字部分」ともに、 「同じカテゴリー部分は、同じ桁数のデータ」にしたら上手くいかないでしょうか。
お礼
すいませんA1をA01で入力するのは 駄目なんです。 A1からA124までとかあります ありがとうございました。
- shintaro-2
- ベストアンサー率36% (2266/6245)
文字列として処理しているので、文字列の左からの順番どおりの並び方になってしまします。 いろいろな方法がありますよ 例えば 1.別に並び替えようの番号をつけておく 2.アルファベットと数字とを分けて入力しておき、表示だけ別のセルでくっつける 3.ふりがなを編集して順番に並ぶようにする 1か2でしょうね
お礼
NO.1 すいません。その作業を省きたいのです。 NO.2 すいません。 システムから吐き出されるファイルなので 手作業になってしまいます NO.3 すいません。その作業を省きたいのです。 説明不足ですいません。 どうもありがとうございました。
お礼
できました。 やはり、空き列を利用して元データを並べ替えように 変換して、行うしかないのですね。 ありがとうございました。