SEQUENCE関数で連続した数値の配列を作成する:Excel関数


スポンサードリンク


作成:2020/5/19,更新更新:2023/3/14

連続した日付を作成する 連続した時刻を作成する
アルファベットを入力する 数値を分割して表示する

SEQUENCE関数が利用できるExcelの種類(バージョンについて)

Excel for Microsoft 365 (サブスクリプション版) でSEQUENCE関数が使えるようになりました。
(Office365は2020/4/22からは Microsoft365となりました)
ちなみに、Excel2016(永続ライセンス版),Excel2019(永続ライセンス版)では使用できませんので、ご注意ください。
なお、2021/10/5頃から市販されている Excel2021(永続ライセンス版)でも使用できます。

Spill(スピル) SEQUENCE関数
Excel2016 × ×
Excel2019 × ×
Excel2021
Excel for Microsoft365

SEQUENCE関数は連続データを作成できますので、オートフィルなどフィル機能を関数で実現できるようになりました。
オートフィルについては データ/数式/関数の入力とオートフィル をご覧ください。

連続した数値の配列を作成する   topへ
 シーケンス
=SEQUENCE(行,[列],[開始],[目盛り])

SEQUENCE関数の引数

引数 説明
返される行の数

(省略可能)
返される列の数
省略した場合は1になります。
開始
(省略可能)
数列の最初の数値
省略した場合は1になります。
目盛り
(省略可能)
配列内の後続の各値の増分量
省略した場合は1になります。

行を指定する

  1. =se と入力すると、seを含む関数がリストで表示されます。
    [↓]キーを5回押して「SEQUENCE」を選択して、[Tab]キーを押します。
    ちなみに、=seq と入力すると、「SEQUENCE」だけが表示されるので、[Tab]キーを押すだけです。
  2. セルに=SEQUENCE( と入力されました。
  3. =SEQUENCE(5) と入力します。
    行に 5を設定していますので、5行に 1,2,3,4,5 が返されます。
    引数の列や開始や目盛りが省略されているので、それぞれの既定値 列は1 開始値は1 目盛りは1 となるので、1,2,3,4,5 が5行に入力されます。

従来は B2セルに =ROW(A1) と入力して、下方向へ数式をコピーしていました。

列を指定する

=SEQUENCE(,5)
行は指定せず、列に5とした場合、5列に 1,2,3,4,5 が返されます。

従来は B2セルに =COLUMN(A1) と入力して、右方向へ数式をコピーしていました。

行と列を指定する

=SEQUENCE(5,3)
行に 5、列に 3を設定しています。
列方向に1,2,3 と入力され次の行には 4,5,6 といった具合に、列方向へ連続した値が入力されます。

行と列と開始を指定する

=SEQUENCE(5,3,100)
行に 5、列に 3、開始に 100を設定しています。

行と列と開始と目盛りを指定する

=SEQUENCE(5,3,100,20)
行に 5、列に 3、開始に 100、目盛り 20を設定しています。

連続した日付を作成する

SEQUENCE関数を使って月間予定表を作成する(縦型カレンダー)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/gekkan-n2.htm

ボックス型カレンダーを作成する(SEQUENCE関数)
http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/calendar_sequence.htm

B2セルに =SEQUENCE(10,,"2020/5/1") と入力します。
SEQUENCEで行は10,列は省略しているので1,開始の値は"2020/5/1" の連続値なので、2020/5/1,2020/5/2,2020/5/3,・・・,2020/5/10 となります。

B2セルに =DATE(2020,5,SEQUENCE(10,,1)) と入力しています。
日が SEQUENCEで行は10,列は省略しているので1,開始の値は1 の連続値なので、1,2,3・・・,9,10 となります。

なお、B列のセルの表示形式は「長い日付形式」を設定しています。 

連続した時刻を作成する

連続した時刻を作成することができます。
オートフィルで連続した時刻を作成すると小数誤差を生じる可能性が大きいので、小数誤差を生じないような時刻を作成したいときには最適と思います。

B2セルには =TIME(SEQUENCE(24),0,0) と入力して、1:00:00〜0:00:00までの時刻を作成しています。
E2セルには =TIME(9,SEQUENCE(60),0) と入力して、9:01:00〜10:00:00までの時刻を作成しています。

こちらの方法では小数誤差を生じますのでご注意ください。
引数の目盛りに1:00や0:01といった小数値を使っているためです。
B2セルには =SEQUENCE(24,,"1:00","1:00") と入力して、1:00:00〜0:00:00までの時刻を作成しています。
E2セルには =SEQUENCE(60,,"9:00","0:01") と入力して、9:00:00〜9:59:00までの時刻を作成しています。


19:00,22:00,0:00のところが手打ちの値と異なるのがわかります。
EXACT関数でEXACT(B2,E2)と=SEQUENCE(24,,"1:00","1:00")と手打ちの値を比較すると、FALSEとなっています。
一方、=TIME(SEQUENCE(24),0,0)の方は全てTRUEとなりますので、小数誤差が心配となる場合はこちらをお勧めします。

アルファベットを入力する

A,B,C・・・と連続したアルファベットを入力します。
Aの文字コードは =CODE("A")=65 ですので、=CHAR(SEQUENCE(26,,65)) となります。
もちろん、=CHAR(SEQUENCE(26,,CODE("A"))) としてもOKです。
なお、 =CODE("Z")-CODE("A")+1 =26 となります。
下図は表示しやすいように、TOROW関数で1行に並べています。


アルファベットを3列に表示するときは
=CHAR(SEQUENCE(3,10,CODE("A"))) とすると、下図のようになります。


TRANSPOSE関数で行列を入れ替えます
=TRANSPOSE(CHAR(SEQUENCE(3,10,CODE("A"))))
としてみました。

Excel for Microsoft365で使用できる WARAPCOLS関数を利用すると、
E2セルは =WRAPCOLS(CHAR(SEQUENCE(26,,CODE("A"))),10,"") とすることができます。

数値を分割して表示する

数値を1セルごとに分解して入力したい場合
まず、桁区切りを表示しない場合は、=MID(B2,SEQUENCE(1,LEN(B2)),1) とします。
B2セルは表示形式で桁区切りが表示されていますので、値は 7940 です。
7940を左から順番にセルに取り出していますので桁区切りは表示されません。

桁区切りを表示したい場合は =MID(TEXT(B2,"#,##0"),SEQUENCE(1,LEN(TEXT(B2,"#,##0"))),1) とします。
B2をTEXT関数でTEXT(B2,"#,##0")として、桁区切り付きの文字列 7,940 に変換しています。

スポンサードリンク



よねさんのWordとExcelの小部屋 »  エクセル関数一覧表 »  SEQUENCE関数で連続した数値の配列を作成する

PageViewCounter
Counter
Since2006/2/27