公開日 2025/12/01
更新日 2025/12/11

縦に並んだ項目を決められた列数の表にする (WRAPROWS 関数) その 2

目次

その1 でご案内した WRAPROWS 関数を使って、下図 A のように縦に並んでいる項目を、決められた列数で折り返した図B のような表にしたいときのお話の続きです.

ここでは、図 C のように、発表者側からみたときの座席表のイメージ (A が右下) で結果が表示されるように修正する例をご紹 介します。

ベースの作成

WRAPROWS 関数の数式を使って、3 列で改行する表を作成します。

WRAPROWS 関数は、ヘルプでは「指定した数の要素の後に、指定された行または値の列を行ごとにラップして、新しい配列を形成します。」と記載されているけれど、簡単にいうと、指定した 1 列 (または 1 行) のデータを横方向に並べて、指定した列数で折り返した結果を表示します。

縦に並んでいるデータを 3 列で折り返しているのがこちら↓

横に並んでいるデータを 3 列で折り返しているのがこちら↓

WRAPROWS 関数の書式は下記です。

=WRAPROWS (ベクトル , 各行の最大列数 , 空白セルがあった場合に設定する値)

ベクトル : (上記の表の縦長 / 横長の 1 ~ 10 のような) 対象となる配列 を指定する
各行の最大列数 : 何列まで行ったら折り返すか (上記の結果だと 3 を指定している)
空白セルがあった場合に設定する値: 省略すると、処理結果のセルに表示する内容がない場合に #N/A エラーになる

ここでは、3 列で折り返す表を作ります。

1. 結果を表示するセル (結果の表の左上となるセル) に数式を入力します。

ここでは、セル C2 から C21 を 3 列で折り返す表を作りたいので、「=WRAPROWS(C2:C21,3,"")」としています。

2. 結果が返ります。

3. [No] 列で [降順] の並べ替えを実行すると、元データの順番が変わり、WRAPROWS 関数の数式で作成した結果の順序も変わります。(左上に No 20 の T がきます)

このとき、結果の最後 (No 1 の A の右側) が空白セルになっています。次の手順でこれをなんとかします。

やり方は 1 つではないけれど、ここでは、WRAPROWS 関数の数式の第 1 引数に、VSTACK 関数を使って、1 つの空白と C2 から C21 を結合した配列を指定します。数式は「=WRAPROWS(VSTACK("",C2:C21),3,"")」です。 先頭に 1 つ空白セルを存在させたいための処理です。

VSTACK 関数については、こちら でも紹介しているのでよかったらご覧ください。

4. 結果の先頭のセルが空白になり、No 1 の A が右下に表示されます。

5.罫線や中央揃えなどの書式を設定して仕上げます。

 


座席表の印刷のことを考えて、順序を逆にした場合の空白セルの対応例について書いてみました。 XLOOKUP と VSTACK 関数を組み合わせる|クリエアナブキのちょこテク で、XLOOKUP 関数と VSTACK を組み合わせた例もご紹介していますが、結局、やりたいことを実現するためには複数の関数を組み合わせることが必要なんですよね。

今回の内容は、そういう意味での一例でもあります。

石田 かのこ

ご相談だけでも大歓迎!
クリエアナブキが組織の課題を解決します。

087-802-1023

営業時間:平日9:00~18:00