エクセルで、複数の行・列にまたがる範囲を1列(または1行)に並べ直すには TOCOL関数・TOROW関数を使います。2行3列の当番表なら、=TOCOL(A3:C4,1) で 山田・佐藤・鈴木・高橋・田中 が縦1列に並びます。
結果は複数のセルに広がる(スピルする)ので、式は1つのセルに入れるだけです。この記事では、TOCOL関数・TOROW関数の基本、空白セルの扱い、読み取る順番(行の順・列の順)、ほかの関数との組み合わせまでを、1つの表で説明します。下の練習ツールで、当番表を書き換えて結果の変わり方を試せます。
TOCOL関数・TOROW関数の書き方
| 引数 | 入れるもの | ポイント |
|---|---|---|
| 配列 | 並べ直したい範囲 | 複数の行・列でも指定できます。 |
| 無視する値(省略可) | 0〜3 | 0:すべて残す(省略時)、1:空白を除く、2:エラーを除く、3:空白とエラーを除く |
| 列ごとにスキャン(省略可) | FALSE(省略)または TRUE | FALSE は行の順(横に読む)、TRUE は列の順(縦に読む)。 |
Microsoft 365 で使えます。
まず動かしてみよう|この記事のサンプルをその場で試せます
練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。
TOCOL関数・TOROW関数の使い方|やりたいこと別の式
| やりたいこと | 式(例) | 結果 |
|---|---|---|
| 縦1列にする | =TOCOL(A3:C4) | 山田・佐藤・鈴木・高橋・0・田中 |
| 空白を除いて縦1列 | =TOCOL(A3:C4,1) | 山田・佐藤・鈴木・高橋・田中 |
| 列の順に読む | =TOCOL(A3:C4,1,TRUE) | 山田・高橋・佐藤・鈴木・田中 |
| 人数を数える | =COUNTA(TOCOL(A3:C4,1)) | 5 |
| 横1行にする | =TOROW(A3:C4,1) | 山田・佐藤・鈴木・高橋・田中(横) |

範囲を縦1列にする(TOCOL)
E3 から下に、1行目の 山田・佐藤・鈴木、2行目の 高橋・(空白)・田中 の順で並びます。空白のセル(火曜の2行目)は 0 と表示されます。
空白を除く
2つ目の引数に 1 を指定すると空白が除かれ、山田・佐藤・鈴木・高橋・田中 の5人になります。名簿を作るときは、ふつうこの形を使います。人数は =COUNTA(TOCOL(A3:C4,1)) で 5 です(COUNT関数・COUNTA関数の使い方)。
▶ この式(F3)を、練習ツールで試す / この式(H3)を、練習ツールで試す
列の順に読む
3つ目の引数に TRUE を指定すると、列ごと(月→火→水の順に縦)に読み取り、山田・高橋・佐藤・鈴木・田中 になります。曜日ごとにまとめて並べたいときに使います。
横1行にする(TOROW)
TOROW関数は同じ考え方で横1行に並べます。A11 から右に 山田・佐藤・鈴木・高橋・田中 が並びます。
TOCOL関数・TOROW関数がうまくいかないときの確認表
| 症状 | 考えられる原因 | 対処 |
|---|---|---|
| 「#SPILL!」になる | 結果が広がる先のセルに値が入っている | 下(横)のセルを空ける。 |
| 0 が混ざる | 空白のセルが 0 として並んでいる | 2つ目の引数に 1 を指定する。 |
| 「#NAME?」になる | Microsoft 365 以外の Excel | INDEX関数などで並べ直す。 |
| 順番が思っていたのと違う | 行の順(横)に読んでいる | 3つ目の引数に TRUE を指定する。 |
TOCOL関数・TOROW関数のよくある質問
重複を除いて並べるには?
UNIQUE関数と組み合わせて =UNIQUE(TOCOL(A3:C4,1)) とします(UNIQUE関数の使い方)。
1列のデータを複数の列に折り返すには?
WRAPROWS関数・WRAPCOLS関数を使います(WRAPROWS関数・WRAPCOLS関数の使い方)。
あわせて読みたい:配列の関連記事
練習用ファイル:練習用Excelファイル(.xlsx・無料)

コメント