TOROW 関数 / TOCOL 関数


ここで解説する TOROW関数 と TOCOL関数 は、ProPlusに追加された関数です。Excel 2016/2019/2021では使用できませんのでご注意ください。また、本稿執筆時点(2022/3/20)では、まだInSider Programに実装されただけですので、製品版で使えるようになるには、まだ少し時間がかかると思います。なお、この関数については、YouTubeの動画でも解説しています。ぜひ、ご覧ください。また、この関数では「スピル」という機能が使われています。スピルに関しては「Excel 2016レビュー[Excelの使い方が激変する「スピル」]」をご覧ください。

TOROW 関数 / TOCOL 関数

TOROW関数は「(複数行複数列の)セル範囲や配列を1に」する関数で、TOCOL関数は「(複数行複数列の)セル範囲や配列を1に」変換する関数です。

では、引数を見てみましょう。

TOROW(array,ignore,scan_by_column)
TOCOL(array,ignore,scan_by_column)

解説をしやすくするため、ここでは次のように表します。

TOROW(配列,無視,方向)
TOCOL(配列,無視,方向)

1つめの引数「配列」は、必ず指定します。それ以外の引数は省略可能です。引数の英語表記が「array」でしたので、ここでも「配列」としましたが、イメージとしては「セル範囲または配列」です。"配列"に対して苦手意識や嫌悪感を抱いている方は、シート上の"セル範囲"または"表"、"リスト"、"テーブル"などを想像してください。一般的にこの「配列」には、複数行で複数列のセル範囲などを指定することが多いですけど、1行とか1列のセル範囲を指定することも可能です。その結果は、[形式を選択して貼り付け]の「行/列の入れ替え」みたくなります。

2つめの引数「無視」は、引数「配列」で指定したセル範囲内のセルが、特定の状態だったとき、そのセルを無視するかどうかを指定します。指定できるのは「エラーだったとき」と「空欄だったとき」の2種類です。

言うまでもありませんが、上図で記載されている「空白」というのは、「空欄セル」「ブランクセル」など"何も入力されていないセル"のことです。セルに計算式が入力されていて、その計算結果が"空欄"であったり、スペースが入力されているセルなどではありません。

最後の引数「方向」は、複数行かつ複数列の「範囲」を、1行または1列に変換するとき、行方向に見ていくか、それとも列方向に見ていくかを指定します。これも、結果をご覧になれば一目瞭然でしょう。

引数「方向」を省略すると、FALSEが指定されたものとみなされます。

さて、いかがでしょう。ここまでの解説を読んで「やっべ!この関数メッチャ便利じゃん!」って感じましたか?おそらく「はぁ?だから何?」って思われたのでは。そう、このTOROW関数とTOCOL関数は、決して単体で使う関数ではありません。単体で使ったからといって、別にMicrosoftから怒られるわけではありませんけど、それでは意味がないでしょう。別の関数と組み合わせたり、何かの処理の"途中経過"として使うのが一般的です。たとえば、重複しないリストを作成するUNIQUE関数は、その結果を行(下)方向に出力します。

集計用の項目などで利用するため、こうしたUNIQUE関数の結果を"列(右)方向"に出力したいとき、今まででしたらTRANSPOSE関数を使っていました。

もちろん、これでもいいのですけど、TOROW関数「1行に変換する」の方がイメージ的にしっくりきます。ちなみにですが、TRANSPOSE関数がやっているのは厳密に言うと「2次元配列を1次元配列に変換する」ということです。まぁ、結果的には同じことですけど。

TOROW関数とTOCOL関数は、ブランクセルやエラーを無視できます。なので、次のようなケースでも助かります。

これも、FILTER関数を使えば何とかなりますが、TOCOL関数の方が分かりやすいです。あるいは、XLOOKUP関数の結果を、行(下)方向に出力したり。

いろいろなケースで利用できそうです。何というか、私のイメージですけど、TOROW関数やTOCOL関数は"一品料理"というよりも、"調味料"みたいな感じがします。