• ベストアンサー

エクセルで複数行に渡ったセルのソートの仕方

エクセルでソートの仕方に関する質問です。 住所録のようなものを作っているのですが一人一行だけではなく 一人で複数行を使って記入しているのもあります。 通常の一行に一人の内容でのソートは解るのですが、一人で二行も 三行も使った場合、従来の方法だとソートができないのです。 複数行を一人の人間の項目だと認識させないとダメなのですが どのようにしてソートすればいいのでしょうか?

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

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.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セルをコピーして他のセルに「編集」→「形式を選択して貼り付け」→「書式」でコピーすると、他のセルにも「条件付き書式」をコピーできます。 後は並べ替えをするだけです。 >もう少し噛み砕いてご説明いただけるとありがたいです。 説明はいたしますが、実際に試していただいて「実際はどのようなデータがあって、どこがうまくいかなかったか」を書いていただかなければ、これ以上の説明は意味がないと思います。

koo108
質問者

お礼

以前質問をさせていただいてお礼をするのを失念しておりました。 その節は誠にありがとうございました。 また何か機会がありましたらどうぞ宜しくお願い致します。

koo108
質問者

補足

ご丁寧にありがとうございます。 さっそくこれを基に作ってみたいと思います。 お礼のポイントをつけてしまうと補足ができなくなるらしく そうするともしできなかった場合、またお尋ねすることが できなくなってしまうので、とりあえず一度このままに させていただけますか。どうぞ宜しくお願い致します。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.1

データの並びが  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!エラーにならないようにするためです。

koo108
質問者

補足

回答ありがとうございます。 人によって一行の人や二行、三行と行数が違うのです。 そんなにエクセルに詳しいわけではないので、すみませんが もう少し噛み砕いてご説明いただけるとありがたいです。