- ベストアンサー
エクセルで複数行に渡ったセルのソートの仕方
エクセルでソートの仕方に関する質問です。 住所録のようなものを作っているのですが一人一行だけではなく 一人で複数行を使って記入しているのもあります。 通常の一行に一人の内容でのソートは解るのですが、一人で二行も 三行も使った場合、従来の方法だとソートができないのです。 複数行を一人の人間の項目だと認識させないとダメなのですが どのようにしてソートすればいいのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>人によって一行の人や二行、三行と行数が違うのです。 以下のように理解しております。 Cさん 1行目 Cさん 2行目 Bさん 1行のみ Aさん 1行目 Aさん 2行目 Aさん 3行目 という住所録を Aさん 1行目 Aさん 2行目 Aさん 3行目 Bさん 1行のみ Cさん 1行目 Cさん 2行目 に並べ替える。これで合っていますか? 同じ人の1行目~n行目の順番を保ったまま並べ替えるためにB列に「その人の行番号」を生成する関数が データの並びが#01の通りだとして =IF(A2=OFFSET(A2,-1,0),OFFSET(B2,-1,0)+1,1) です。B2にこの式を貼りつけして、そのセルをデータの下までコピーします。 氏名欄は空白ではダメです。必ず名前を入れてください。ただし上の行と名前が一致するときに、見えないようにする方法が#01の条件付き書式です 先頭の氏名欄(A2とします)を選択して 「書式」→「条件付き書式」を選択して、「値が」を「数式が」に変更します。「式」には =B2>1 のとき 書式で文字色を白色に設定します。A2セルをコピーして他のセルに「編集」→「形式を選択して貼り付け」→「書式」でコピーすると、他のセルにも「条件付き書式」をコピーできます。 後は並べ替えをするだけです。 >もう少し噛み砕いてご説明いただけるとありがたいです。 説明はいたしますが、実際に試していただいて「実際はどのようなデータがあって、どこがうまくいかなかったか」を書いていただかなければ、これ以上の説明は意味がないと思います。
その他の回答 (1)
- zap35
- ベストアンサー率44% (1383/3079)
データの並びが A列 B列 C列 氏名 連番 住所 佐藤 1 東京都… 佐藤 2 川崎市… 鈴木 1 横浜市… だとします。 まずA列には必ず氏名を入力します。そうでないと並び替えはできません。またB2には以下の式を入れます =IF(A2=OFFSET(A2,-1,0),OFFSET(B2,-1,0)+1,1) そうすればB列の連番は自動的に入ります。B列は通常は非表示にしておけばよいでしょう。 その上でA列、B列を用いて並べ替えをしたらどうでしょう。 一人で複数行を使用するとき、2行目以降に氏名を表示させたくない場合は条件付き書式を使って、 「数式」「=B2>1」のとき「書式」で文字の色を白色にするようにすれば表示はされません。 (ただし入力されているか分かりにくくなりますが…) なおOFFSET関数を使用したのは行の削除を行ったときに#REF!エラーにならないようにするためです。
補足
回答ありがとうございます。 人によって一行の人や二行、三行と行数が違うのです。 そんなにエクセルに詳しいわけではないので、すみませんが もう少し噛み砕いてご説明いただけるとありがたいです。
お礼
以前質問をさせていただいてお礼をするのを失念しておりました。 その節は誠にありがとうございました。 また何か機会がありましたらどうぞ宜しくお願い致します。
補足
ご丁寧にありがとうございます。 さっそくこれを基に作ってみたいと思います。 お礼のポイントをつけてしまうと補足ができなくなるらしく そうするともしできなかった場合、またお尋ねすることが できなくなってしまうので、とりあえず一度このままに させていただけますか。どうぞ宜しくお願い致します。