ここから本文です

中ほどにある数字でソートしたい

dio********さん

2011/2/1303:08:42

中ほどにある数字でソートしたい

A列でソートしたところ
10
11
12
13
14
15
16
17
18
19

20
21
22
23





というふうになりました。
きれいにソートするにはどうしたらいいでしょうか?

L1&quot,Rows.Count,A&quot,diogenes412323,A1,中ほど,L&quot

閲覧数:
126
回答数:
4
お礼:
50枚

違反報告

ベストアンサーに選ばれた回答

kei_jun_kuuさん

編集あり2011/2/1314:20:16

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))
あとは同様です。。

diogenes412323さん

図が小さくて…
A列の文字列が良く見えないけど、下図のようだったら、、...

質問した人からのコメント

2011/2/20 04:25:48

みなさん本当にありがとうございました。順に試していきどれもうまくいきました。
なぜうまくいくのかを理解するのはずいぶん先のことになりそうです。
回答の中で最初のをBAにさせていただきます。

http://blogs.yahoo.co.jp/uuatanabetakahiko/23512715.html

このQ&Aで解決しましたか?質問する

閉じる

ベストアンサー以外の回答

1〜3件/3件中

並び替え:回答日時の
新しい順
|古い順

yos********さん

2011/2/1307:56:27

1)文字列と入っている場合、




と並べ替えたいときには、
01
02
03
と番号をつけ直してください。

2)
また、A列に1列挿入し、番号のみの列を用意し、
1~オートフィルで番号を付ければ、正常な並べ替えが出来ます。

maronさん

2011/2/1310:22:14

>中ほどにある数字でソートしたい
◆「第1シーズン」、「第13話」のそれぞれの数字であれば、
◆作業列を設けて
B1=SUBSTITUTE(LEFT(A1,FIND("シー",A1)-1),"第",0)*1000+RIGHT(SUBSTITUTE(LEFT(A1,FIND("話",A1)-1),"第","00"),3)
★下にコピー

◆全体を範囲指定して、作業列を「最優先されるキー」にして並べ替えをしてください

>中ほどにある数字でソートしたい 
◆「第1シーズン」、「第13話」のそれぞれの数字であれば、...

har********さん

2011/2/1313:47:55

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
''++++++++++++++
写真の左半分はシートの状態です、右半分はマクロのモジュールの状態です。
いずれも、動作の途中の状態を写真にしています。

Macroを組んでみました。
シートの詳細な文字が見えませんので・・・「第1シリーズ...

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

[PR]お得情報

CMで話題のふるさと納税サイトさとふる
毎日お礼品ランキング更新中!
2019年のふるさと納税は≪12/31まで≫

その他のキャンペーン

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる