- ベストアンサー
【Excel】小計単位で並べ替えを効率よく行いたいのですが・・
Excelのリストで、約20行おきに小計行があります。その小計の単位で、数値を対象に並べ替えを行いたいのですが、効率よく行う方法がありましたら、ご伝授ください。 なお、行数はデータの変化に伴い毎回異なります。 WindowsXP・Excel2003です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
あまりスマートな方法ではないと思うのですが、お急ぎのようですので。 仮に、A列に数値と小計(SUM関数)のみがすき間無く入っているとして、です。 【1】A列を選択し、置換で「=」を適当な文字に変換します(ここでは「(=)」にしたとします) 【2】隣の列(B列)へは1,2…と行番号と同じ物を入力。(「1」,「2」まで入力して2セルを選択し、選択枠右下の小さな黒四角をダブルクリックすると便利) 【3】更に隣の列(C列)には、1行目は「0」2行目には『=IF(TYPE(A1)=1,C1,C1+1)』と入力して、データ分だけ下へコピーします(前の手順と同様、右下四角ダブルクリックでOK) 【4】C列を選択してコピーし、そのままC列へ「形式を選択して貼り付け」で「値」として貼り付けます。 【5】A,B,C列を選択し、メニューバーの[データ]→[並べ替え]を選択。C列、A列、B列の順番で昇順にしてソートします。 【6】A列を選択し、置換で「(=)」を「=」に変換(戻)します。 【7】B,C列は削除 お試し下さい。
その他の回答 (1)
- neKo_deux
- ベストアンサー率44% (5541/12319)
> 効率よく行う方法がありましたら、 グループ化を行っていると、いい感じで処理してくれるみたいです。 [-]ボタンでリストを畳めますし、便利です。 データA_01 データA_02 ~ データA_19 小計A データB_01 データB_02 ~ データB_13 小計B ~ ~ データA_01からデータA_19の行を選択します。 [データ]-[グループとアウトラインの設定]-[グループ化] を各データに行い、 ┏データA_01 ┃データA_02 ┃~ ┃データA_19 [-]小計A ┏データB_01 ┃データB_02 ┃~ ┃データB_13 [-]小計B ~ ~ の状態にします。 [-]が上にきちゃう場合は、[データ]-[グループとアウトラインの設定]-[設定]で「詳細データの下」をONにして下さい。
お礼
ありがとうございました。 グループ化の機能はよく使いますが、小計を対象に並べ替えができることは知りませんでした。 でも、今回は詳細データを対象に並べ替えしたいので・・・m(__)m
お礼
ありがとうございました。 Excelとにらめっこして、なぜ正確にソートできるのか、なんとか理解できました。 関数も機能も、知ってはいても、hiruminさんのように複雑に組み合わせるには至りません。感嘆です! ただ、仕事で毎回使うとなるとちょっと作業が複雑です。もう少しだけ”スマートな方法”ありましたら、またご伝授ください。