|
中ほどにある数字でソートしたいhttp://detail.chiebukuro.yahoo.co.jp/qa/question_detail.php?qid=1355520158&sort=1
中ほどにある数字でソートしたい
A列でソートしたところ 10 11 12 13 14 15 16 17 18 19 1 20 21 22 23 2 3 4 5 6 というふうになりました。 きれいにソートするにはどうしたらいいでしょうか?
回答(4件中1〜4件)
yossitanさん
1)文字列と入っている場合、 1 2 3 : と並べ替えたいときには、 01 02 03 と番号をつけ直してください。 2) また、A列に1列挿入し、番号のみの列を用意し、 1〜オートフィルで番号を付ければ、正常な並べ替えが出来ます。
diogenes412323さん 図が小さくて… A列の文字列が良く見えないけど、下図のようだったら、、 A列に列を挿入して、 A1=VALUE(MID(B1,FIND("第",B1,2)+1,FIND("話",B1)-FIND("第",B1,2)-1)) この数式を下にコピペして、 A列を「最優先されるキー」の「昇順」で良いかしら? 【追記】 シーズンの連番にも対応させました。。 A1=VALUE(MID(B1,2,FIND("シー",B1)-2)*10^5+MID(B1,FIND("第",B1,2)+1,FIND("話",B1)-FIND("第",B1,2)-1)) あとは同様です。。
maron5ooさん
>中ほどにある数字でソートしたい ◆「第1シーズン」、「第13話」のそれぞれの数字であれば、 ◆作業列を設けて B1=SUBSTITUTE(LEFT(A1,FIND("シー",A1)-1),"第",0)*1000+RIGHT(SUBSTITUTE(LEFT(A1,FIND("話",A1)-1),"第","00"),3) ★下にコピー ◆全体を範囲指定して、作業列を「最優先されるキー」にして並べ替えをしてください
Macroを組んでみました。 シートの詳細な文字が見えませんので・・・「第1シリーズ 話1・・・」と読んで作成しています。話の後の「数字は99まで」と判断してマクロを組んでいます。 作業スペースをL列(12列)にしています。若し貴方のシートが9列で完成していれば・・・ コードの「 L 」を 「 J 」 に変更してください。要は最終列の隣りの列のアルファベットに変更してください《6箇所》。 そのように変更していただければ、昇順まで全てボタン1回押しで、完了します。 また、「話」が他の文字であれば、コードの中の「 話 」をそちらの文字一文字と変えてください《2箇所》。 コードは以下の通りです。 ''+++++++++++++++++++++++++++++++++++++++++ Sub 昇順() With Range("A1", Range("A" & Range("A" & Rows.Count) _ .End(xlUp).Row)).Offset(, 11) .Formula = "=if(A1<>"""",mid(A1,7,2),"""")" .Value = .Value .Select Selection.Find(What:="話").Activate .Replace What:="話", Replacement:="" End With Range("L1", Range("A" & Range("A" & Rows.Count) _ .End(xlUp).Row)).Select Range("L1").Activate Range("L1").Sort Key1:=Range("L1"), Order1:=xlAscending Range("L1", Range("L" & Range("L" & Rows.Count) _ .End(xlUp).Row)).Clear End Sub ''++++++++++++++ 写真の左半分はシートの状態です、右半分はマクロのモジュールの状態です。 いずれも、動作の途中の状態を写真にしています。
|

- >
- コンピュータとインターネット
- >
- コンピュータ
- >
- ソフトウェア



