- 締切済み
エクセル 並び替えについて
エクセルでの並び替えについてどなたか教えてください! エクセル2003を使用しています。例えば 分類名 | 単価 | 数量 | 金額 |・・・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ A |100 | 10 |1000 |・・・ A |200 | 20 |4000 |・・・ A |300 | 10 |3000 |・・・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 小計 8000  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ B | 50 | 10 | 500 |・・・ B |100 | 50 |5000 |・・・ B |300 | 10 |3000 |・・・  ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ 小計 8500 : : : 上記のように、分類名ごとに作られている表があった時に、 それぞれの分類ごとの小計が大きい分類から順に並び替えて、 さらにその分類中で、金額の大きい順に並び替えを することはできるのでしょうか。 データ量が少ない時にはピポットテーブルを使用して できたのですが、分類名も何百個とあり、全データに すると大変なデータ量になります。 ACCESSを使用してでもいいので、どなたかいい方法があれば、 教えてください! よろしくお願いします!
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
(例データ) A2:D13 ただし、C、D列は演算式を入れた結果で、当初の元データはA列、B列だけ。 a 10 60 1 a 20 60 1 a 30 60 1 小計 60 60 0 b 30 80 1 b 10 80 1 b 5 80 1 b 35 80 1 小計 80 80 0 c 90 100 1 c 10 100 1 小計 100 100 0 (関数式) C2に=OFFSET(B2,MATCH("小計",A2:A10,0)-1,0)といれ C3以下に複写する。 10は明細行の最大以上の数を入れる。小計もいれて aの行は4、bの行は5、cの行は3なので、4以上の数を 指定すること。 D2に=IF(A2="小計",0,1)といれ、D3以下に複写する。 (式を消す) A2:D13を範囲指定し、編集-コピーし、同じ場所に、編集-形式を選択して貼りつけ-値でC,D列の演算式を消し値だけにする。 (ソート) A2:D13を範囲指定し、データ-並べ替え 第1キー 列C 降順 第2キー 列D 降順 第3キー 列B 降順 OK (結果) c 90 100 1 c 10 100 1 小計 100 100 0 b 35 80 1 b 30 80 1 b 10 80 1 b 5 80 1 小計 80 80 0 a 30 60 1 a 20 60 1 a 10 60 1 小計 60 60 0 C、D列は削除するもよい。 小計は生きるが、罫線だけは当初のものが、役立たなくなるので外し引きなおさざるを得ない。
- omusupa
- ベストアンサー率61% (115/186)
バックアップを取ってから、以下の処理してみてください。 1.小計行をすべて削除する。 2.データ→並べ替え→最優先されるキー分類名(昇順か降順) 2番目に優先は[金額]を降順 3.その後 [データ]→[集計]→[集計の設定]ダイアログボックスで グループの基準 分類 集計方法 合計 集計するフィールド 金額 OKをクリック 4.上記の操作をすると、アウトラインが左に表示されるので、アウトラインレベル2をクリックし、折りたたむ 5.表のどこでも良いのでクリックをし、 データ 並べ替え 金額を 降順 6.アウトラインレベルを3にする
- snoopy64
- ベストアンサー率42% (337/793)
#1です。補足です。 =SUMIF(A:A,A2,D:D) をE2に入力して、下方向にコピーしてくださいね。
- snoopy64
- ベストアンサー率42% (337/793)
分類ごとの小計も行に含ませることで並べ替えできます。 ご質問の列構成だとして、たとえばE列に =SUMIF(A:A,A2,D:D) とすれば、分類名AのグループではE列はすべて8000、 分類名BのグループではE列はすべて8500になりますから、そこで並べ替え(データ→並べ替え)で、E列降順、D列降順にすればいいでしょう。 ただし、並べ替える段階で小計行があるとダメなので、並べ替え後に集計(データ→集計)で小計を作成しましょう。 頑張ってください(^o^)丿