1行ずつに分かれているデータを1つのセルにまとめ、見やすくしたいと思ったことはありませんか?
やったこと
Before
After
例えばこんな感じで、どの生徒がどの委員を経験したか。それを一覧表にしてみました。ただし、セルの結合は使いません。後々このデータを利用しやすくしておきたいからです。
さてと、どうしましょうかね?
COUNTIFで数を数える
まずは、各生徒が経験した委員会の個数を「COUNTIF」関数で数えます。
列Cを追加し、セルC2に下記の数式を入力します。数える範囲はセルA2からA8までのみなので「$$」を付けましょうね。
=COUNTIF($A$2:$A$8,A2)
セルC2の右下の「■」を行8までドラッグすると、各生徒が経験した委員会の個数がズラズラっと表示されます。みんなけっこう活躍しているんですね〜。
IFSの方が理解しやすい
後は役員名を1つのセルにまとめるだけ。これには「IFS」関数を使いました。
「IF」関数だとネスト(=入れ子)になってゴチャゴチャするんすが、「IFS」関数だとテーブルのような構造なので、パッと理解しやすい…ように思います。
1セルに収まったけど…
前述の通り、生徒が経験した委員会の個数をCOUNTIFで数えてみたら、最大「3」ということが分かりました。つまり、ある生徒について、やりたいことを日本語で表現すると下記のようになります。
- 委員会の経験数が「1」のときは、役員名の1行目をセットする。
- 委員会の経験数が「2」のときは、役員名の1行目と2行目をセットする。
- 委員会の経験数が「3」のときは、役員名の1行目と2行目と3行目をセットする。
これを関数で表現すると下記のようになります。セルどうしを連結するには「&」を使います。
=IFS(C2=1,B2,C2=2,B2&B3,C2=3,B2&B3&B4)
結果がこちら。
ん〜、これだと複数の役員名がつながってしまい、意味不です…( ̄▽ ̄;)
CHAR(10)で改行する
つながった役員名を改行するには「CHAR(10)」を使えばオーケーです。
=IFS(C2=1,B2,C2=2,B2&CHAR(10)&B3,C2=3,B2&CHAR(10)&B3&CHAR(10)&B4)
結果がこちら。
ん? おかしいな。まだ改行されていませんね( ̄O ̄;)
折り返して表示する
折り返したい範囲を選択し、上部「ホーム」>「配置」>「折り返して全体を表示する」を押すと改行されますよ。
これだと見栄えがよくないので、仕上げに、姓名が重複している行を削除します。
値のみコピペする
ちょうど範囲選択したままの状態になっているので、そのままコピーし、右隣の列Eに「値」のみ貼り付けます。するとこんな感じになります。
重複している行を削除する
「データ」>「データツール」>「重複の削除」>「姓名」のみチェックを付ける>「OK」。
すると重複している行が削除されます。「OK」で離脱しましょう。
完成!
不要な列B、C、Dを非表示にするか削除すればこんな感じで完成です!
コメント