いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Gスプレッドシート)1,2,3,1,2,3…のように繰り返す連番を作る

 [※2022年12月更新]
 Googleスプレッドシートで1,2,3,1,2,3……のように同じ並びを繰り返す連番を作成する方法についてです。
 少ない繰り返しなら手作業でコピペした方が早いですが100回とかになると面倒なので、関数を使って最大値と繰り返し回数を指定する方法を試してみます。

  • MAKEARRAY/LAMBDA関数とFLATTEN関数を使って、繰り返す連番を作成することができます。

手順


 B2セルに数式を入力し、1から3までの整数を4回繰り返す連番を生成しています。


 数式の内容は次のとおりです。

 B2セル

=FLATTEN(MAKEARRAY(4,3,LAMBDA(r,c,c)))

 「MAKEARRAY(4,3,LAMBDA(r,c,c))」の部分により、{1,2,3}の配列を4行にわたって並べた行列を生成しています(次の画像)。
 そしてこれをFLATTEN関数で縦1列に並べることにより、結果的に1から3までを4回繰り返しています。
 MAKEARRAY関数の第1引数が繰り返し回数、第2引数が最大値となります。


 なお、上記のMAKEARRAY関数の部分だけを実行するとこのようになります。
 やや難しい関数ですが、行列の各セルの値を行番号(ここではr)と列番号(ここではc)の関数として生成でき、うまく使えばとても便利です。