• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel上でのデータソートの方法をご教授下さい)

Excel上でのデータソートの方法をご教授下さい

deadlineの回答

  • deadline
  • ベストアンサー率63% (1239/1943)
回答No.2

>エクスプローラのように列のボタンクリック一つで行のソートができる方法はありますでしょうか? 列のボタンクリックは列全体を選択する意味があるので、列のボタンクリック1つでというのは無理かと思いますが、キー操作を『マクロ』に記録し、記録した『マクロ』の実行を『ツールバー』の『ボタン』に登録すれば、その『ボタン』1クリックでの並べ替えが可能です。([Ctrl]+アルファベット1文字または『ツール』⇒『マクロ』⇒『マクロ』⇒『実行するマクロの選択』でも可) まずは、キー操作をマクロに記録する方法から。 『ツール』⇒『マクロ』⇒『新しいマクロの記録』をクリックすると、『マクロの記録』というダイアログが表示されますから、『マクロ名』の欄に『著者名による並べ替え』とか、わかりやすい名前を付け、その下の『ショートカットキー』のCtrl+□の欄にアルファベット1文字を入れます。(入力した文字が大文字だと、"Ctrl+□"の表示が"Ctrl+Shift+□"に変わります。) [OK]をクリックすると、『マクロツールバー』という小さなツールバーが出てきます。(ストップボタン"■"と ワークシートを意味する絵柄のアイコンが表示されています。)『マクロツールバー』が邪魔な所へ出てきたら、邪魔でない所へちょっと退けて置きます。(この退ける操作は記録されません。) A2~C6を選択し、『データ』⇒『並べ替え』・・・・という一連の並べ替えの操作を行い、並べ替えが実行されたところで、『マクロツールバー』のストップボタン"■"をクリックします。(ストップボタン"■"をクリックするのを忘れると、とんでもないキー操作まで記録されてしまいます。) A列でソートするマクロ、B列でソートするマクロ、C列でソートするマクロ、それぞれを別々の名前で作成します。(この段階で、"Ctrl+□"での並べ替えが可能なはずですから、それぞれテストしてみると良いかと) 次に、『ツールバー』にマクロを実行するための『ボタン』を登録します。(↓では、新しく『ユーザー設定ツールバー』を作成していますが、『標準』のツールバーに標準の並べ替えのボタン("AZ↓"、"ZA↓")があるので、その横に置いても良いかと) 『ツール』⇒『ユーザー設定』⇒『ツールバー』タブの『新規作成』をクリックすると、『新しいツールバー』というダイアログが出てきますから、『ツールバー名』の下の『ユーザー設定 1』のところを適当な名前に変更し、[OK]をクリックします。(既にある『標準』とか『書式』といった名前には変更できませんから、『ユーザー設定』のままでも良いかと) 小さなツールバー(↑で付けた名前の最初の1~2文字が表示されています)が出てきますから、『標準』等のツールバーがある所まで、ドラッグ&ドロップします。 『ユーザー設定』⇒『コマンド』タブをクリックし、『分類』一覧から『マクロ』を選択します。 右側に『ユーザー設定ボタン』(黄色の顔に目と口のマーク)のというのがありますから、それを先程の小さなツールバーの上まで、ドラッグ&ドロップします。(『標準』ツールバーに置きたい時には、『標準』ツールバーの置きたい位置にドラッグ&ドロップします。) 『コマンド』タブの『選択したボタンの編集』をクリックし、一番下の『マクロの登録』をクリックし、記録済みのマクロの一覧の中から、そのボタンに登録したいマクロを選択します。 『ボタン』のアイコンの図柄を変更したい時には、『選択したボタンの編集』⇒『ボタンイメージの変更』をクリックし、一覧の中から選択するか、『選択したボタンの編集』⇒『ボタンイメージの編集』で自分の好きなイメージに変更します。(並べ替え用には、『ボタンイメージの変更』の一覧に"↓"の図柄がありますから、"↓"を選択して、『ボタンイメージの編集』で少し下に移動、その上に"A"とか"B"とかを書き加えると良いかと) 同じ操作を、A列でのソート用、B列でのソート用、C列でのソート用と、3つのボタンについて行い、『閉じる』をクリックして終了です。 一旦、ツールバーに置いたボタンを移動または削除したり、改めて別のマクロを割り当てたりしたい時には、『ツール』⇒『ユーザー設定』で『ユーザー設定』ダイアログを表示した状態で、そのボタンをドラッグ&ドロップすれば移動が出来ます。右クリックすると、『選択したボタンの編集』と同じメニューが表示され、削除やマクロの登録が出来ます。 また、データを追加したりして選択範囲を広げたい時などには、『ツール』⇒『マクロ』⇒『マクロ』⇒『編集』をクリックすると、『Visual Basic Editor』で記録済みのマクロの編集が出来ます。 Sub 著者名による並べ替え() ' ' 著者名による並べ替え Macro ' マクロ記録日 : 2003/3/19 ユーザー名 : ○○○○○ ' ' Keyboard Shortcut: Ctrl+a ' Range("A2:C6").Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin Range("A2").Select End Sub 1つのマクロは"Sub"で始まり、"End Sub"で終わります。その下の『'』で始まる行は注釈行です。 選択した範囲は、"Range("A2:C6").Select"の"A2:C6"の部分ですから、ここを"A2:C20"とかに書き換えて、"Visual Basic Editor"を終了すれば、選択範囲が変更されたマクロでの並べ替えができるようになります。 なお、"End Sub"の前の"Range("A2").Select"は、ストップボタンを押す前に、選択範囲を解除するために、セルA2を選択した時のキー操作が記録されたものです。

関連するQ&A

  • excel 7条件一括のソート方法

    excelの表を7条件 一度の操作でソートしたいです。 A      B     C    D    E     F     G     H       data1  data2 小計1   data3  data4  小計2   合計 Aさん   28    27     55    30    25     55    110 Dさん   29    26     55    30    25     55    110 Cさん   27    28     55    29    26    55     110 Bさん   28    28     56    27    27    54     110 上記のEXCELの表があった場合の ソート条件  1 H列の数が少ない順  2 1が同じ場合Gが少ない順  3  2が同じ場合Fが少ない順 4 3が同じ場合Eが少ない順 5 4が同じ場合Dが少ない順 6 5が同じ場合Cが少ない順 7 6が同じ場合Bが少ない順 となるように するには どうしたらよいでしょうか?    間違いをなくすために 数度のソートを繰り返すことはしたくありません。         よろしくお願いいたします  

  • エクセル表で異なった分類でソートする方法

     A列に分類番号のA・B・Cを打ち、横にデータを記入していく。横列のC又はD(縦列)にア・イ・ウの頭文字をつけてデータ(人名や語句)を打っていく。このようにして作った表を、(1)ABCをソートして並べ替える(Aグループ、Bグループの順に並ぶ。次に(2)Aグループのなかを、アイウ順に並べ替えたい。そのような操作が出来る方法を教えてください。  私が試みたら、C列だけがソートされて、横のデータが付いていかないのです。空欄があるせいでしょうか。それとも?ソートは、C欄全体を選択し、「降順」をクリックしています、表全体(AからE,Fまで選択したら、どの指標で(AかCか)分からないと思って。  試行錯誤で使っています。どうぞ知恵を貸してください。

  • excelを用いた一対比較データのソートの方法

    ある実験データ分析のために大量のデータをexcelを使ってまとめたいのですが,大量データをうまくソートする方法が分からないのです. 現在あるデータは,一対比較のデータです. A列→パラメータα(4種:a,b,c,dとする),B列→パラメータβ(2種:1,2とする)の組み合わせと,C,D列にそれと比較されたパラメータα,βの組み合わせが入っている状況です. 私がしたいことは,縦横,a1,b1,c1,d1,a2,b2,c2,d2の8*8の表を作り,一対比較で勝った方(各行に対して,A列B列がC列D列に常に勝っている)の回数をその表にいれたいのです. () どうぞ,その方法をお教えいただけないでしょうか. つたない説明でごめんなさい. もし分かりづらかったら追加で説明しますので,どうぞよろしくお願いします.

  • エクセルのソートで、数字よりもアルファベットを優先したい

    数字とアルファベットが混在したコードにソートをかけたいと思っています。 (A~Z、0~9の順にしたい) ユーザー設定リストで新しいリストを登録するんだろうな…までは分かるんですが、やってみてもうまくいきません。 私が試したのは、A、B、C…7、8、9と順に一桁です。 ソートをかけたいコードは*******-*という形です。

  • エクセルでのソート

    こんにちは いつもお世話になっています エクセルのソートについて教えてください。 以下のようなデータがA列にあります。 Sheet1 Aグループ 愛知県 青森県 秋田県 Bグループ 石川県 茨城県 岩手県 愛媛県 Cグループ 大分県 大阪府 岡山県 沖縄県 香川県 鹿児島県 B列以降にデータがあり、複数グループが複数シートに渡ってあります。 ソート手順は例えば、Aグループ、愛知から秋田を範囲選択しソート、次にB、石川から愛媛を範囲選択しソート、以下同じ、Sheet1が済んだらSheet2へ、という作業手順です。 グループごとの件数は異なるが、ソートする優先キー(列)は第一がB列、第二がC列で同じです。 ソート処理自体はマクロの自動記録でやっていますが、グループごとに範囲選択しマクロを使う手順です。 ここで質問ですが、複数シートに複数グループがあります。各シートの各グループの件数は不一致です。これらのグループをなるべく簡単に上記のような同一基準でソートするにはどうすればいいでしょうか。

  • EXCEL 数式・関数でソートしたい

    数式・関数でソートする方法を教えてください。 A列に日付、B列に品名、C列に個数が入ったSheet1があります。 これを日付順にソートしたSheet2をつくりたいと思っています。 Smallでやろうと思ったのですが、同じ日付が何回もでてくるために、うまくいきませんでした。 よろしくお願いします。

  • エクセル2002でのソートについて

    A B C 1 A1 B1 C1 2 __ B2 C2 3 A5 B5 C5 4 __ B4 C4 5 A3 B3 C3 6 __ B6 C6    ↓ソート A B C 1 A1 B1 C1 2 __ B2 C2 3 A3 B3 C3 4 __ B4 C4 5 A5 B5 C5 6 __ B6 C6 (1)A列をキーに (2)1と2行,3と4行,5と6行を一纏めに ソートする方法はありますでしょうか?

  • エクセルで複数のデータからソートをかけて、合計金額を算出したいのですが

    エクセルで複数のデータからソートをかけて、合計金額を算出したいのですが、ソートではうまくいきません。 A列(文字)  B列(数値)  C列(金額) ABC 123 100 ABC 456 50 DEF 123 1,000 GHI 789 300 このような感じで、B列には同じ数値のものが複数あるデータです。 どなたかエクセルマスターの方、お教えいただけますか?

  • エクセル マクロ VBA での部分参照ソート

    エクセル2003で 下記のようなデータをソートし、 【ソート前】 2208550 92059184 92059174 92059174B 92059174A 92059174C 1348535 19777225 2519034 2519034D 2519034B 2519035A 2519035C 【ソート後】 1348535 19777225 2208550 2519034 2519035A 2519034B 2519035C 2519034D 92059184 92059174 92059174A 92059174B 92059174C 上記ソート後の結果を得られるマクロを作りたいです。 文字列の右にABCが付与されるコードです。 よろしくお願いいたします。

  • STLのlist どのデータでソートするか分からないデータでソートを行うには?

    class data { public: 文字列型* str; //コンストラクタでN個の配列を生成 int N; //文字列の配列の個数 }; list<data> obj; と書いて、objに対して大量にデータを追加した後、その要素をソートするところで困っています。 データを文字列型のデータの配列の特定のオブジェクトを使ってソートするのに、その方法が見つかりません。 リストのデータの一つ目 str[0] = "abc"; str[1] = "def"; リストのデータの二つ目 str[0] = "ghi"; str[1] = "jkl"; というリストのデータがあったときに、str[0]の要素でソートしたいということなのですが........ メンバのint型などについては、operator<をオーバーロードする方法が見つかったのですが........