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

このQ&Aのポイント
  • Microsoft Excelでのソート方法を教えてください。蔵書リストを例に挙げますが、著者名でソートすると、書名と価格のデータがずれてしまいます。
  • Excel上で著者名、書名、価格のデータを入力し、著者名、書名、価格の順にソートする方法を教えてください。データが正しく整理されていない場合、蔵書リストの目的が達成できません。
  • Excelのデータソートにおいて、著者名、書名、価格のデータがずれないように正しく並べ替える方法を教えてください。蔵書リストのデータが混乱しないようにするためには、どのような手順が必要ですか。
回答を見る
  • ベストアンサー

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

Microsoft Excelでの、ソートについてご教授下さい。  例えば、蔵書リストを作成した場合、A列に著者名、B列に書名、C列に価格と入力していくとします。 このとき、C列を対象としてソートすると、そのC列は昇順なり降順なりで価格順としてソートされますが、A列B列のデータとC列のデータが食い違ってしまいます。  これを、エクスプローラのファイル一覧のように、A列の著者名でソートすると、それをB列C列にも反映させ、蔵書リストを著者順にも書名順にも価格順にも一行一冊づつ並べ替えるにはどうしたらよいのでしょうか。   なんとかうまく説明したいのですが、稚拙極まる質問の表現で大変恥ずかしく思います。 どなたか質問の内容をお酌み取り頂き、教えて頂いたら幸甚に存じます。  また、既出質問、あるいは各種マニュアルを精査すればこの方法が記載されてる事と思います。 それらを横着し、皆様の知識と善意に安直に頼る姿勢をお許し願いたいと存じます。

質問者が選んだベストアンサー

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

ANo.#2の訂正&補足です。 まずは訂正から。 >並べ替えが実行されたところで、『マクロツールバー』のストップボタン"■"をクリックします。 選択範囲を解除するために、並べ替えが実行された後、適当なセルを1つ選択してから、ストップボタン"■"をクリックしてください。(選択されたままでも、かまわないと言えばかまわないのですが・・・) 以下、補足です。 『マクロ』を含む『ブック』を開いて『マクロ』を実行するためには、『ブック』を開く前に、『ツール』⇒『マクロ』⇒『セキュリティ』⇒『セキュリティレベル』タブで、セキュリティレベルを『中』または『低』に設定しておく必要があります。 『中』に設定すると、『ブック』を開く時に『マクロを無効にするか、有効にするか』の問い合わせメッセージが表示されますから、『マクロを有効にする』をクリックしてください。 『低』に設定すると、無警告で『有効』になってしまい、『マクロ』を使ったコンピュータウィルスに対し、脆弱になってしまいますから、注意してください。 また、『新しいマクロの記録』で、範囲選択の際に、スクロールバーの"▼"等をクリックして、画面をスクロールさせた時には、"Visual Basic Editor"で『マクロ』を編集した時に、範囲選択を意味する Range("A2:C6").Select の前後に、キー操作を意味する ActiveWindow.SmallScroll Down:=24 (←"▼"をクリックして、24行スクロールした時) ActiveWindow.LargeScroll Down:=1 (←スクロールバーの薄い色の部分を1クリックして1画面スクロールした時) Range(Selection, ActiveCell.SpecialCells(xlLastCell)).Select (←[Shift]+[Ctrl]+[End]で入力範囲の最終行までを一気に選択した時) 等の記述が入ることがありますが、並べ替えに必要な記述はANo.#2の部分だけなので、削除してしまってもかまいません。(記述が残っていても、べつにかまいませんが・・・)

tomopppi
質問者

お礼

deadline様、重ねてのご回答、心よりお礼申し上げます。また、お礼の御挨拶が遅れた事、お詫び申し上げます。ご丁寧なご教授通り、色々とエクセルをいじってみました。なにぶんエクセルの基本操作さえままならない未熟者ゆえ、マクロを開くのも初めてで、ちょっと困惑もいたしましたがdeadline様の詳しいご解説のおかげで、なんとか思い通りの事ができました。それと共に、マクロの便利さにも驚きました。これを機にマクロの勉強もしてみたいと思い始めた次第です。この度は本当にありがとうございました。大変助かりました。

その他の回答 (2)

  • 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を選択した時のキー操作が記録されたものです。

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

並べ替えたいデータが入力されているA列一番上の行~C列一番下の行全体を選択し、 『データ』⇒『並べ替え』⇒『最優先されるキー』にC列を選択して並べ替えれば、A列~C列が連動して並べ替えられます。 なお、並べ替えの範囲の指定は、下の例の場合、 A2~C6を選択して、『範囲の先頭行』の指定で『○データ』にチェックを入れる。 または、A1~C6を選択して、『範囲の先頭行』の指定で『○タイトル行』にチェックを入れる。 どちらでも、並べ替えられる範囲はA2~C6になります。  A   B   C 1 著者名 書名 価格 2 ○   ○   ○ 3 ○   ○   ○ 4 ○   ○   ○ 5 ○   ○   ○ 6 ○   ○   ○

tomopppi
質問者

補足

deadline様、早々かつご丁寧なご回答、誠にありがたく存じます。  教えて頂いたとおり操作してみたところ、私の希望通りの結果になりました。大変助かりました。お礼申し上げます。  重ねて甘えさせて頂きたいのですが、教えて頂いた手順の他に、エクスプローラのように列のボタンクリック一つで行のソートができる方法はありますでしょうか?それには他に適したソフトがあるのでしょうか?  もしご存じでしたらご教授下さい。

関連する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が付与されるコードです。 よろしくお願いいたします。

  • エクセルのデータの並び替えについてご教授願います

    いつも参考にさせて頂いております。 今回、どうしても分からないことがあり、質問させて頂きました。 エクセルで下記のような表のデータの並び替えを行いたいのですが、上手くいきません。ご存知の方がいらっしゃいましたら、ご教授願います。便宜上、A列・B列・C列と表記しているのですが、実際にはこれらの列は結合セルです。このため、並べ替えを"リストの作成"を行うとセルがばらばらになり見苦しくなってしまいます。 以上、どうぞよろしくお願いします。  A  B   C     →  A  B  C 1バラ 30  無       1バラ 30  無     2バラ 50  有       2バラ 50  有  3ユリ 60  無       3バラ 20  無 4ウメ 70  有       4ユリ 60  無 5バラ 20  無       5ユリ 10  有 6ユリ 10  有       6ウメ 70  有

専門家に質問してみよう