RANDBETWEEN関数、SEQUENCE関数を用いて数値データを生成する 【MOS 365 Appsに出る関数】

MOS資格対策
MOS資格対策
スポンサーリンク/Sponsored Link

Excel 2019以降のバージョン(2021, Microsoft365)では、さまざまな関数が追加されました。

なかでも、数式入力セル以外の範囲まで拡張して結果を反映する、「スピル」という動作が加わったことで、多数の興味深い関数が追加されています。

SEQUENCE関数もそのひとつです。

このような変化に対応して、マイクロソフトオフィスの利用スキルを証明する資格「MOS」にも、来年新バージョンが登場します。「Microsoft 365 Apps」と呼ばれるバージョンです。

試験範囲には、新しい関数が多数含まれます。本記事の表題は、試験を実施するCertiportが公表した出題範囲の文言からとったものです。

RANDBETWEEN関数、SEQUENCE関数を用いて数値データを生成する

Objective Domains – MOS Microsoft 365 Apps | Certiport
Excel (Associate)の出題範囲より。和約は当店

この記事では

  • RANDBETWEEN関数について
  • SEQUENCE関数について
  • この2つを組み合わせて使う

の3点を解説していきます。

MOS Microsoft 365 Apps の出題範囲については、別記事を参照してください。

スポンサーリンク/Sponsored Link

RANDBETWEEN関数:乱数を生成する

RANDBETWEEN関数は、乱数を生成する関数です。

「いくつからいくつまで」と、乱数の範囲を指定できるので、RAND(ランダムな)-BETWEEN(間の)というわけですね。

=RANDBETWEEN(最小値,最大値)
=RANDBETWEEN(1,100)
RANDBETWEEN関数を使って、1から100までの乱数を生成したところ

※このスクリーンショットは、数式を行方向にオートフィルした状態の画面です。

小数点以下のある乱数を生成したい場合

RANDBETWEEN関数の結果は、整数のみです。

もし、小数部のある乱数を生成したい場合は、次のようにします。

例: 身長の数値サンプルを生成する 135.0cm~175.0cm 0.1cm刻み

=RANDBETWEEN(1350,1750)/10
RANDBETWEEN関数を使って、135.0~175.0の範囲の乱数を生成したところ

最小値、最大値ともに10倍の数値を指定して乱数を生成したあと、10で割ることによって、目的の乱数を作っています。

広い範囲に一気に乱数を生成するには RANDARRAY関数

RANDBETWEEN関数は、そのセルに1つの乱数を生成する関数です。

多数の乱数を生成するには、式をオートフィルする必要があります。

オートフィルしないで、単一の数式で多数の乱数を一気に生成するのがRANDARRAY関数です。

※この関数は、Excel 365 Associateの出題範囲には入っていません。Expertに入っています。

=RANDARRAY([行数],[列数],[最小値],[最大値],[整数ならTRUE])
=RANDARRAY(1000,10,135,175,FALSE)
RANDARRAY関数を使って、1000行×10列=一万人分の身長サンプルデータを生成したようす

RANDARRAY関数は、このように、ひとつ数式を入力すると「スピル」されて、指定の範囲に一気に結果が出力されます。出力範囲内にデータが入っているとエラーになりますのでご注意ください。

RANDARRAY関数の場合は、結果が小数・整数どちらでも選べるようになっています。第5引数にTRUEを指定すると整数、FALSEを指定すると小数が出力されます。

RANDARRAY関数の小数部を丸める

小数部を丸めたい場合は、次のようにすると可能です。

=ROUND(RANDARRAY(1000,10,135,175,FALSE),1)
=ROUND(RANDARRAY(1000,10,135,175,FALSE),1)
RANDARRAY関数の結果の小数部を、ROUND関数で丸めたようす

ROUND関数そのものはスピルしない関数ですが、スピルする関数の外側を別の関数で囲うと、結果がひとつひとつに適用されて、スピルして出力されます。おもしろいですね。

RANDARRAY関数の引数を省略する

RANDARRAY関数の引数は、こんなふうになってまして

=RANDARRAY([行数],[列数],[最小値],[最大値],[整数ならTRUE])

すべての引数が省略可能、ということです。なんだそれ!?

詳しくは載せませんが、すべての引数を省略して =RANDARRAY() とすると、どうも =RAND()と同じ動作をするようです。そのセルだけに、0以上1未満の乱数が生成されます。

スポンサーリンク/Sponsored Link

SEQUENCE関数:連続した数値を生成する

SEQUENCE関数は、連続した数値を生成できる関数です。結果はスピルして出力されます。

=SEQUENCE(行数,[列数],[開始値],[増分])
=SEQUENCE(10,10,1001,1)
SEQUENCE関数を使って、1001から1ずつ増える連続値を、10×10のセル範囲に出力したところ

第4引数は、現行のExcelの日本語訳では「目盛り」と表示されますが、こんな変てこな日本語訳で覚える必要はありませんので、当店では「増分」と表記したいと思います。

ちなみに英語版では

=SEQUENCE(rows,[columns],[start],[step])

と表示されています。

SEQUENCE関数の引数の省略

SEQUENCE関数は、行数以外の引数が省略できますので、このような使い方もあります。

=SEQUENCE(10)
SEQUENCE関数を使って、1から10までの連続値を生成したところ

この例では、「10行分の連続値」ということだけを指定しています。列数を省略すると1、開始値も省略すると1になり、増分も省略すると1になるようです。

小数を含む連続値を生成するには

SEQUENCE関数は、開始値・増分ともに小数を指定できますので、そのまま小数の連続値を生成できます。

=SEQUENCE(10,10,135.5,0.1)
スポンサーリンク/Sponsored Link

RANDBETWEEN関数と、SEQUENCE関数を組み合わせるとどうなる

さて、ここで、最初にご紹介した、MOS Microsoft 365 Appsの「出題範囲」にもどります。

RANDBETWEEN関数、SEQUENCE関数を用いて数値データを生成する

Objective Domains – MOS Microsoft 365 Apps | Certiport
Excel (Associate)の出題範囲より。和約は当店

必ずしも、この2つの関数を組み合わせなさい、と受け取る必要はないようにも思いますが

組み合わせたらどうなる、ということは知っておく必要があると思います。

マイクロソフトサポートに載っている例としては、このようなものがあります。

=SEQUENCE(5,6,INT(RAND()*100),INT(RAND()*100))
=SEQUENCE(5,6,INT(RAND()*100),INT(RAND()*100))
マイクロソフトサポート「SEQUENCE関数」に載っているサンプルをそのまま入力したところ

このサンプルでは、RAND関数を使っていますが、RANDBETWEEN関数に置き換えるとこのようになるでしょう。

=SEQUENCE(5,6,RANDBETWEEN(0,99),RANDBETWEEN(0,99))
=SEQUENCE(5,6,RANDBETWEEN(0,99),RANDBETWEEN(0,99))
上のサンプルの、RAND関数をRANDBETWEEN関数におきかえたところ

「ランダムな整数セットを作成する」とマイクロソフトサポートには書かれていますが、この数式によって生成される数値は、ランダムな整数とはいえないことにご注意ください。

初期値と増分をランダムに生成しているだけで、たとえば上の画像は「初期値38、増分2の整数セット」です。

38と2はランダムに生成されていますが、その結果をもとに規則的に生成されたものです。

ですから、仮にこの回答を求められるMOSの問題文があるとすれば

「5行6列のランダムな整数を生成してください」

ではなく

「5行6列の連続値を生成して下さい。開始値と増分は、ランダムにしてください」

になるんだろうと思うのです。

正直、組み合わせる意味がそんなにあるとは思えません

こんなわけで、SEQUENCE関数と、RANDBETWEEN関数を組み合わせる意味が、そんなにあるとは思えない、というのが、当店の感想です。特殊な用途なら、あり得ますけども。

乱数列を生成するのならば、素直にRANDARRAY関数を使うべきでしょう。

ですが、「問題文通りに正しく操作する」のがMOSの試験というものです。

果たして、実務力をつけることも目標になってるMOSの試験で、こんな問題が本当に出るんだろうか? という疑問もわきますが

もし、こういう問題が出た場合には、その通り組み合わせる必要があるでしょう。

パソコン教室・キュリオステーション志木店からのお知らせ
レッスンはオンラインで受講できます

パソコン教室・キュリオステーション志木店では、本年よりオンラインでの在宅レッスンを実施しております。
教室の全コースがオンラインで受講可能。実際にインストラクターがご対応いたします。
1時間の無料体験レッスンはいつでも予約できます。詳しくは公式ページをご覧ください。

スポンサーリンク/Sponsored Link
キュリオステーション志木店運営をフォローする

コメント

タイトルとURLをコピーしました