- ベストアンサー
エクセルで数字を並び替える方法
- エクセルで数字の並び替え方法について教えてください。
- エクセルのセルに入力された数字を昇順に並び替える方法を知りたいです。
- 手作業で数字を並び替えるのは手間なので、自動で並び替える方法を教えてください。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
んーと? >セル内に出てくる数字は、文字でも数字でもどちらでも構いません。 コタエ以前にあなたは自分のデータについて,「01」のように文字で入れているのか,数値を表示形式で「00」表示しているのか,どっちなんでしょうか? それと >下記のように昇順に並び替える それは横に並べたいんですか?それともふつーに縦に並べたいんでしょうか。 ま,どっちでもイイということはご自分のデータもどっちにも直せると言うことだとして。 A1:F5にデータが記入してあるとして ○数値で1,2,3…を記入しセルの書式設定の表示形式のユーザー定義で00を設定して表示してあるのを縦に並べる =SMALL($A$1:$F$5,ROW(A1)) と記入し,下向けにコピーする。セルの書式設定の表示形式のユーザー定義で00を設定する。 ○文字列で01,02…と記入してあるのを横に並べる =TEXT(LARGE(-($A$1:$F$5),COLUMN(A1)),";00") と記入し,コントロールキーとシフトキーを押しながらEnterして右にコピーする
その他の回答 (2)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセルをよく知らないないものが、データをこのように入力して、セルの値で質問のように並べ替えたいと言っているのと同じ。 エクセルの特徴を知らないから難題になる。何でもデータを作ってから処理を考えようとしてもエクセル関数や操作では難しい場合が多い。初めからデータ入力構想の失敗。 エクセルのデータは同類のデータは1列や(1行に)集めないと処理(ソートも)出来ない・難しい。無いものねだり的なところが在る。 ーー 関数でやるなら、空いた列1列にデータを一旦直して、値化して(=入れた式を消して)、ソートの操作をする。 6列データを1列データにする関数式は出来るかな。ここの質問にも時々出る。 ーー そういうのでなければ、プログラムで配列などにデータを一旦収容し、ソートアルゴリズムを使って、データを並べ替えして、最後に望むシートのセルのデータの情況にするしかない。 >文字でも数字でもどちらでも構いません。 文字の場合の、言っていることの難しさが質問者はわかっているのかな。 フリガナなどで並べ替えるとなると、むつかしいのだよ。
お礼
ご指摘ありがとうございます。 確かにこのようなものはプログラムの方でやる内容ですね。 ちょっと、このようなデータをコピーしてきて、 ササッと並び替えたい時があるので質問しました。
- Cupper-2
- ベストアンサー率29% (1342/4565)
RANK関数 や SMALL関数 で順位を出した横30セル(5×6)の表を作って、 SEARCH関数 で順位に対応する列番号を求めて、その値を元に縦横の位置を計算し INDEX関数 や OFFSET関数 で引っ張ってくるような関数を作るかな。 A1セルからF5セルの範囲に値があるなら A6セルからF10セルに文字列を数値に直した表を作り直して(RANK関数やSMALL関数は数値を扱います) =A1*1 … =F5*1 A11セルから横に30セルの範囲に =SMALL($A$6:$F$10,COLUMN) を入力 SEARCH($A11:$AD11,1) で左から何列目に調べたい(上の例なら一番小さい値)順位があるか分かるので 表の中の MOD(SEARCH($A11:$AD11,1)-1,5)+1 で横方向 INT((SEARCH($A11:$AD11,1)+1)/5)+1 で縦方向 に該当する数値があることが分かります. OFFSET関数では、この数値から1を引いた値を使うので =OFFSET($A1,MOD(SEARCH($A11:$AD11,1)-1,5),INT((SEARCH($A11:$AD11,1)+1)/5)) を設定ですかね。 ※実際に動作させていないので正しく動かない可能性あります。 普通に横または縦に並べる参照形式の一覧を作って、それの「値のコピー」を横に貼り付けて さらにそれをソートで並べ替えるほうが早いかも知れませんけどw
お礼
ご回答ありがとうございます。 関数を使う方法は難しそうですね。 最後に書かれた方法を一度試してみます。
お礼
早速のご回答ありがとうございます。 また、説明不足で申し訳ありません。 サンプルとしてだしたセル内の数字は、「文字列」としていました。 また、並べ替え結果は、「横並び」を想定していました。