[[20150927062858]] 『ソートしたい』(ビギナー) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『ソートしたい』(ビギナー)

A列とB列に数字、C列に品名が入っています。
これを順番に並べたいのです。

   A   B   C
 1   1   12   リンゴ    
 2  1   4   パセリ
 3  3   1   ミカン
 4  2   5   セロリ
 5
 6  2   15    ナシ
 7  3   32  イチジク 
 8   1   6   イチゴ
 9   2   2  キンカン 

 10    1      9   ブドウ
 
を
    F    G    H
 1 1      4  パセリ 
 2  1      6  イチゴ
 3  1      9  ブドウ
 4  1     12  リンゴ
 5  2      2 キンカン
 6  2      5  セロリ
 7  2     15   ナシ
 8  3      1  ミカン
 9  3     32 イチジク

といった感じです。
よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows8 >


こんにちは。
いわゆる複数キーによるソートということですね?
例えば、
http://www.eurus.dti.ne.jp/~yoneyama/Excel2007/excel2007-sort.html
などを参考にして、操作してみてはどうでしょうか。
「昇順/降順に並べ替える(複数条件で並べ替える)」というあたりですね。

(γ) 2015/09/27(日) 07:10


 γさんから適切な回答がありました。
 希望としては、関数で処理したいということかも知れませんが、難解な関数を、データ行があるだけセットする、
 あるいは、空白なら表示しないということや、データがなくなれば表示しないということもも盛り込んだ、
 さらに難解の二乗の関数を余裕を持たせた行数分セットするより、
 エクセル基本機能の並び替えが、データ量増減にも対応できますので、ベストだと思います。

(β) 2015/09/27(日) 07:16


コメントありがとうございます。
よく読んでいなかったです、すみません。別の列にということですか。

私も同感です。
関数でやってできないことはないでしょう。

ただですね、Excelの標準機能にソートが備わっているということは、
「こうしたことは標準機能を使ってくださいね」
と言っているのですから、そのとおりExcel君が工夫した機能を
有り難く使うべきです。コピーしてからソートすればいいです。

もし、何度も実行するので毎回は困るんです、ということなら、マクロを使って、
特定のボタンに割り当てて、それをクリック、という方法が標準です。

(γ) 2015/09/27(日) 07:33


 補足というか、蛇足です。

 コピペと並び替え、この操作をマクロ記録しますと、必要な基本的なコードが生成されますので
 必要であれば、これをブラッシュアップした上で、γさんアドバイスのように、ボタンを配置して
 そのボタンにマクロ登録をしておいて、それをクリック。
 あるいは、「マクロショートカットキー」を割り当てて実行時は、Ctrl/○ (○ は割り当てた半角小文字のアルファベット)で一発実行でも。

 ただ、x2007以降、この並び替え操作を行うと、ちょっと煩雑なSortオブジェクトを使ったコードが生成されてしまいます。
 並び替えの機能の拡充に伴う変更なんですが、今回の事例なら、xl2003までの、シンプルな Sortメソッドを使ったほうがいいと思います。

 以下は、Sortメソッドを使い、マクロショートカットキーで実行させる例です。

 1.シートタブを右クリックして、コードの表示を選んででてきたところに、以下のコードをコピペで貼り付け。
 2.画面右上のボタンをクリックしてシートに戻る。
 3.開発タブ、左のほうの「マクロ」をクリック
 4.でてきた小窓で、シート.並び替え を選び(もう選ばれていると思いますが)オプションをクリック
 5.ショートカットキーに、たとえば 半角小文字の s をいれて OK をクリック。
 6.マクロの小窓をXボタンで閉じる

 これで準備OKです。あとは好きな時に Ctrl/s で実行されます。

 コードは以下です。

 Sub 並び替え()
    Columns("A:C").Copy Range("F1")
    UsedRange.Columns("F:H").Sort Key1:=Range("F1"), Key2:=Range("G1"), Header:=xlNo
 End Sub

(β) 2015/09/27(日) 07:48


 シートにボタンを配置して、それをクリックして実行する準備作業も参考まで。

 1.と 2.は上記の通りの作業。
 3.開発タブ、挿入からフォームコントロールのボタンを選び、シートの任意の場所に貼り付け
 4.マクロの登録の小窓が出るので シート.並び替えを選択してOKボタン

 これで準備OKです。あとは好きな時にこのボタンをクリック。
 なおボタンのキャプションは、ボタンを右クリックしてテキスト編集を選ぶと任意の文字列に変更できます。

(β) 2015/09/27(日) 08:49


1行目に見出しがあればピボットテーブルでも表示できると思います

(マナ) 2015/09/27(日) 09:18


 >>1行目に見出しがあればピボットテーブル

 なるほど!
 で、見出しがあればオートフィルターの並び替えでもできますね。
 ただ、オートフィルターの並び替えは、内部的には、当該領域を通常の並び替え機能で並び替えるということなので
 並び替えのために、わざわざオートフィルターを設定して▼で並び替えをする意味が全くないのですが
 ピボットは、そうではないのでしょうか?

(β) 2015/09/27(日) 09:39


難しいことは私にはわからず、βさんの?には答えられないので
質問者さん向けにコメント。

 元の場所で並べ替えてよいなら、最初のγさんの回答で解決

 で、質問が
 元のデータを崩さず、別の場所に並べ替えて表示したい
 ということであれば、ピボットテーブルが使えるかと思いました。

 ピボットテーブルだと幸いにもデフォルトで要望通りに並べ替えて表示されます。
 なので、並べ替えそのものは実行不要なのですが、
 空白の行も表示されちゃうので、フィルタで表示しないようにする必要があります。

 フィルタをかけると、データの更新ができないようなので
 更新のたびに、フィルタ解除が必要なのが面倒です。
 そうすると、質問者さんのご要望の表示と異なり、
 邪魔かもしれませんがフィールドの見出しは 表示しておいたほうがよいかもしれません。

 マクロでもピボットテーブルでも、使ったことがない人にしてみれば
 とっつきにくいのは同じかもしれません。
 でも、もし質問者さんが、この類の処理をすることが多いならば、
 このスレの中ででてきた、並べ替え、フィルタ、ピボットテーブルは
  そういった機能があることだけでも覚えておくとよいと思います。

(マナ) 2015/09/27(日) 11:55


 >>並べ替え、フィルタ、ピボットテーブルは  そういった機能があることだけでも覚えておくとよいと思います。

 全く同感です。せっかくの便利な機能が豊富に備わっていますからね。

(β) 2015/09/27(日) 12:29


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.