- ベストアンサー
エクセルのデータ整理方法について
マクロではなく、関数等でのやり方を教えて下さい。 今、以下のようなフォーマットで大量のデータがあります。 A1:名前 B2:クラス A2:○○君 B2:1組 A3:△△君 B3:2組 A4:■■さん B4:1組 A5:□□君 B5:3組 これを A1:1組 B1:2組 C1:3組 A2:○○君 B1:△△君 C2:□□君 A3:■■さん のように、クラス別で並べ替えたいと思っています。A2とA3の間に空白のセルができないように整理をしたいのですが、よい方法を教えて下さい。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
[回答番号:No.1]の別解です。 「大量のデータ」の「大量」が 1000行と仮定します。 1.範囲 A2:A400 に次の[条件付き書式]を設定 数式が =ISERROR(A2) フォント色 白 2.範囲 A2:A400 を選択(アクティブセルは A2)した後、[数式バー] にマウスカーソルを置いて、次の配列数式を入力して Ctrl+Enter で確定 =INDEX(Sheet1!$A$1:$A$1000,SMALL(IF(Sheet1!$B$1:$B$1000=A$1,ROW(A$1:A$1000),""),ROW(A$1:A$1000))) 3.範囲 A2:A400 を右2列にドラッグ&ペースト 【お断り】解説は遠慮します。
その他の回答 (2)
B列をキーにソートして、あとはコピペで。 関数を入れる暇にやってしまえば、こちらが手っ取り早いかと。
- mu2011
- ベストアンサー率38% (1910/4994)
データシートをSheet1、組別シートをSheet2に抽出しますのでSheet2の1行目は組名を入力して下さい。 Sheet2のA2に=IF(COUNTIF(sheet1!$B:$B,A$1)>=ROW(A1),INDEX(Sheet1!$A:$A,SMALL(IF(Sheet1!$B$2:$B$1000=A$1,ROW($A$2:$A$1000),9999),ROW(A1))),"")を設定、縦横に必要分コピーして下さい。 尚、配列数式の為、入力完了時にshift+ctrl+enterキーを同時押下して下さい。
補足
申し訳ありません。関数が理解できないため、後学のために解説して頂けないないでしょうか。
お礼
回答ありがとうございます。データの更新作業が多いため、関数で組みたいところなので、フィルターなどはあまりしたくありません。