(Gスプレッドシート)連番をふる関数(SEQUENCE関数)

 Googleスプレッドシートでは連番をふるための関数というのが長らく存在せず、ROW関数などにより代用されていましたが、現在ではSEQUENCE関数が実装されており簡単に連番を生成することができます。

  • SEQUENCE関数により任意の初期値、差分を持った連番(数列)を生成することができます。
  • 複数の行、列にわたって連番をふることもでき、ARRAYFORMULA関数との組み合わせによりループ処理も可能となります。

手順

f:id:accs2014:20191119222517p:plain:right:w450

 B2セルに「=SEQUENCE(5)」と入力します。

f:id:accs2014:20191119222522p:plain:right:w450

 いとも簡単に1から5までの数列が生成されました。

f:id:accs2014:20191119222526p:plain:right:w550

 SEQUENCE関数では最大4つの引数が指定できます。順番に行数、列数、初期値(初項。最初の数字)、差分(公差。増分)です。
 ここでは「=SEQUENCE(4,3,5,2)」と入力してみます。

f:id:accs2014:20191119222530p:plain:right:w550

 行数が4、列数が3、初項が5、差分が2の行列が生成されました。

f:id:accs2014:20191119222534p:plain:right:w650

 単に数列を表示するだけではさほど芸がありませんが、この関数が重要なのはある種のループ処理を実現できるためです。
 例としてB2セルに記録された文字列に対し、B4セルに次のように入力してみます。

=ARRAYFORMULA(MID(B2,SEQUENCE(3,5),1))

f:id:accs2014:20191119222538p:plain:right:w650

 文字列を1文字ずつ区切って行列状に出力することができました。
 MID関数の第2引数(○文字目から)をSEQUENCE関数とARRAFORMULA関数により一括して与えることができたからです。
 手動で1つ1つ式を入力して文字列を分割するのは面倒ですが、このようにして繰り返しの手間を省略することができます。