今回は、SEQUENCE関数という少しユニークな使い方をする新型関数について解説します
このSEQUENCE関数は他の関数と組み合わせて使用すると、その便利さは無限に広がります
上のGIF画像では、1つのセルに1つの関数を入力するだけでB2セルに入力されている「エクセル」の文字列を各セル別に分解しています!
では、基本的な使い方から解説をはじめます
基本的な使い方
SEQUENCE関数の書き方は次の通りです
ちなみに[]の中は省略可という意味になっており、指定しなければ自動的に1が設定されます
=SEQUENCE(行数,[列数],[開始番号],[増分])
行数のみ指定
例えば、下のGIF画像のように行数を5とだけ指定すると、1~5の連続する数字が自動作成されます
行数に加えて列数等も指定
では次の様に、各引数を指定してみます
=SEQUENCE(2,3,4,5)
①行数:2
②列数:3
③開始:4
④増分:5
①~④をSEQUENCE関数の引数に反映すると、次のような連続データができます
開始が4からはじまり、増分が5(例:4→9)になっています
そして行数は2、列数は3となっています
日付データ作成
では、今日(2021年5月27日)の日付を含めた10個の日付データを作成してみます
開始日には、=TODAY()を指定します
=SEQUENCE(10,1,TODAY())
上のGIF画像では、ただの連続データが作成されていますが、書式を日付に変更すれば下の画像のようになります
曜日データ作成
では、上の画像の日付データの横に曜日データを作成します
こちらは、WEEKDAY関数を各セルに入力するのではなく、下のGIF画像のように「#」を使って入力します
上のGIF画像では、=WEEKDAY(B2#)としてB2セルの次に#を付け足すことで、新型関数の抽出結果を再利用しています
上記の画像では、曜日が1~7の数字で表現されていますが、書式を「ユーザー定義」で下の画像のように「dddd」と設定すれば文字列の曜日で表示されます
上の画像のように連続した日付データを作成しておけば、下の画像のように「FILTER関数」の抽出条件式をOR条件で使用して、複数の好きな曜日の日付を抽出できます
上の画像では、抽出したい曜日をE2セルとF2セルに指定しています
ちなみに3は火曜日(日曜日が1)で5が木曜日です
*WEEKDAY関数の2番目の引数/省略可でどの曜日を1にするかは指定可
FILTER関数の抽出条件の設定(2番目の引数)についてはOR条件なので、2つの()の中に条件式を入れた上で「+」でOR条件を指定します
=FILTER(B2#,(C2#=E2)+(C2#=F2))
文字列データの分解
記事の冒頭で紹介した、SEQUENCE関数を使用した「文字列の分解」について解説します
こちらはSEQUENCE関数をMID関数及びLEN関数と組み合わせて使用します
まず、話しを分かり易くするために「エクセル」の文字列が入力されたB2セルを操作対象として、MID関数を次の様に使用してみます
=MID(B2,1,1)
抽出結果は次の画像の通りです
上の画像では、MID関数の抽出開始位置を1としていますので「エ」が抽出されています
この2番目の引数の1を「エクセル」の文字列の長さまで変動させたらどうでしょう?
SEQUENCE関数を「=SEQUENCE(1,LEN(B2))」のように指定すると、次の画像のように1~4の文字列が行方向で作成されます
では、MID関数の2番目の引数に上のSEQUENCE関数を、次のように入れます
=MID(B2,SEQUENCE(1,LEN(B2)),1)
そうすると、次のGIF画像のように「エクセル」の文字列/4文字を5文字の「EXCEL」にかえても正確にセル毎に分割されます
<まとめ>
今回は、SEQUENCE関数という少しユニークな新型関数を紹介しました
連続データを作成するだけであれば、ホームタブに既に機能はあります
このSEQUENCE関数は他の関数と組み合わせてみてはじめて、有効性を発揮します
今回は、日付データと文字列データの分解の2つしか事例を紹介できませんでしたが、読者の皆さんの職場に色々とアイデアが落ちていそうですね
ぜひ、使用事例を連絡頂けると嬉しいです
長文を最後まで読んでくださり誠にありがとうございます
コメントを残す