SEQUENCE 関数


ここで解説する SEQUENCE関数 は、Office InsiderのProPlusに追加された関数です。執筆時点(2019年8月)で、製品版のExcelにはまだ実装されていません。ただし、Microsoftがこの関数を実装すると公にアナウンスしたのは、2018年の11月です。おそらく現在は、さまざまな動作検証をしたり、細かい修正などを行っているところでしょうけど、近い将来Excelに実装されるのは間違いありません。そうなったら、もうExcelの使い方が大きく変わります。そんな画期的な関数です。なお、Office Insiderに関しては、ご自身でググってください。また、この関数では「スピル」という機能が使われています。スピルに関しては「Excel 2016レビュー[Excelの使い方が激変する「スピル」]」をご覧ください。

SEQUENCE関数

連続した数値を生成する関数です。

引数「行」と「列」は、SEQUENCE関数によってスピらせる範囲を指定します。引数「行」は必ず指定しますが、引数「列」は省略可能です。引数「列」を省略して、引数「行」だけを指定すると、指定した行数分だけ連続した数値を返します。

引数「開始」には、生成する連続数値の開始数値を指定します。引数「開始」を省略すると1が指定されたものとみなします。

引数「目盛り」には、連続数値の"間隔"を指定します。引数「目盛り」を省略すると1が指定されたものとみなします。

引数「開始」には少数を指定することもできます。

上図は、引数「開始」に0.1を指定しましたが、引数「目盛り」を省略したので1ずつ増加しています。引数「目盛り」に0.1を指定すれば、小数部分を増加させられます。

ちょっと残念

まぁ、この関数も、実務で大活躍するものではありませんね。上でやったように、複数の行列に長方形的に連続した数値を生成することって、実務ではほとんどないでしょう。1列とか1行だったら、従来からあるROW関数やCOLUMN関数で十分ですし。ただ、このSEQUENCE関数を見たとき「おお!ひょっとしてアレに使えるのか?だったら超便利だぞ」って期待しました。それは、VLOOKUP関数との組み合わせです。

F列からI列にあるのが、VLOOKUP関数で表引きする元データです。ここではテーブル形式にしています。名前は「テーブル1」です。これを見て分かるように、B列からD列に入力した数式は、

  1. VLOOKUP(A2,テーブル1,2)
  2. VLOOKUP(A2,テーブル1,3)
  3. VLOOKUP(A2,テーブル1,4)

みたく、引数「列位置」のところを、2→3→4と変化させなければなりません。これ、たとえばセルB2に1つ数式を入力して、右方向にコピーしても、自動的に2→3→4とは変化せず、毎回手で修正しなければいけませんでした。表が大きくなると手間ですし間違えやすい。さらにケースによっては、2→4→6としたいこともある。実務は複雑ですから。25年前から全Excelユーザーが悩んでいたのですが、これって、SEQUENCE関数でいけるのでは!しかも、動的配列数式を使えば

と、1つの数式で済みます。この「列位置」のところにSEQUENCE関数を組み合わせれば、きっと問題は解決です。さっそくやってみましょう。

なんだろう?このガッカリ感は…。セルB2に入れた動的配列数式、右方向にはスピってくれません。まぁ、そういう仕様なんでしょうね。しかたありません。つーことで、このSEQUENCE関数も、実務ではあまり使われないのではないかと想像します。もちろん、使ってもいいですけど。

(追記)

VLOOKUP関数との併用ができないと書きましたが、その後「XLOOKUP関数」が追加されたことを知りました。もうね、XLOOKUP関数があれば、上に書いたような苦労は不要になります。なので、SEQUENCE関数がVLOOKUP関数内で使えないってのは、まったく問題ではありませんね。詳しくは「XLOOKUP関数」「XLOOKUP関数のすごいところ」をご覧ください。