[※2022年12月更新]
Googleスプレッドシートで1,1,1,2,2,2,3,3,3……といったように同じ数が一定回数続く連番を作成する方法です。
項数が少なければ手作業で十分ですが、ここでは関数で実現します。
Googleスプレッドシートで1,1,1,2,2,2,3,3,3……といったように同じ数が一定回数続く連番を作成する方法です。
項数が少なければ手作業で十分ですが、ここでは関数で実現します。
- SEQUENCE関数と割り算を使って、同じ値が一定回数連続する連番を作成することができます。
- FLATTEN関数とMAKEARRAY関数を使う方法もあります。
手順
SEQUENCE関数を使う方法
連番生成用の関数であるSEQUENCE関数を使う方法です。
ここでは同じ数字が3つずつ連続する連番(1,1,1,2,2,2,3,3,3…)を12行にわたって並べるものとします。
B2セルに次のように記します。
B2セル
=ARRAYFORMULA(CEILING(SEQUENCE(12)/3,1))
SEQUENCE関数で1~12の連番を生成し、それぞれ3で割って整数に切り上げています。
値をいくつ並べるかはSEQUENCE関数の引数で指定し、同じ数字を何個ずつ並べるかは割り算の分母で指定しています。
結果はこうなります。
FLATTEN/MAKEARRAY関数を使う方法
こちらは行列生成用の関数であるMAKEARRAY関数を使う方法です。
ここでも同じ数字が3つずつ連続する連番(1,1,1,2,2,2,3,3,3…)を12行にわたって並べています。
B2セル
=FLATTEN(MAKEARRAY(4,3,LAMBDA(r,c,r)))
MAKEARRAY関数の第1引数で連番の最大値を、第2引数で1つの数値が繰り返される回数を指定しています。
生成される項数は2つの引数の積となります。
生成された行列をFLATTEN関数で縦1列に並べ直しています。
なお、式中のFLATTEN関数を除いて実行するとこうなります。
MAKEARRAY関数は行列の各セルの値を行番号(ここではr)と列番号(ここではc)の関数として生成できるので、これを利用して連番を複数列生成しています。