【Excel】数字が重複しないN桁の数値を数式でランダムに作る

今回は「数字が重複しないN桁の数値」を数式を作ります。

"数字が重複しない"とは例えば3桁数字の場合、"123"、"456"の様に3桁内の数字がすべて異なるものを指します。逆に"112"や"343"といった数字を"数字が重複する"と勝手に表現します。

出来上がりイメージ

※[F9]キー(再計算)ボタンを押してランダム数値5桁を表示しています。

数式解説

数式はなるべく簡素に見えるよう、目的に合わせて分けながら記載しています。

ランダムな数値を作る

C列では各桁用にそれぞれランダムな数値が入る様な数式になっています。また重複は避けている為、1桁目の数値が2~5桁目と一緒になる事はなく、すべてが異なる数値となります。

以下の関数はC3セルに埋め込まれた数式です。「候補となる数字(D3セル)からMID関数を用いて1文字切り出す」という内容になっていますが、ROUND関数以下が見づらいので解説です。

RAND関数ではランダム値を生成する範囲を指定できるため「RAND()*D3セルの長さ-1」と指定します。「D3セルの長さ-1」とすることで実際には「0~10」のランダム値が生成されます。また、今回必要な数値は整数なのでROUND関数で囲うことで、ランダムな整数値となるようにしています。

また、生成されたランダム値はそのまま数字として使用するのではなく、D3セルへのMID位置に使用する事を目的としている為、"0"があってはなりません。そのため「+1」を補いつつ、D3セルの長さからは「-1」とすることでランダム値の範囲が「1~10」となるように調整しています。

候補となる数字を作る

候補となる数字は単純で、一番先頭の行は固定で「01234567890」と対象とする数字を入れつつ、以降の行では順次SUBSTITUTE関数をもって使用済の数字を除外していきます。

順次除外していくため1桁ずつ減っていきます。

候補となる数字の桁数が減っていくため、ランダム数値を作り出す数式においてもLENB関数を使用してMID関数が用いれるよう調整していたわけです。

ここの数字が出来上がったら、後は文字連結して完成です。

RAND関数は再計算でランダム値が再算出されるので、[F9]キー連打でテストしてみましょう。

「数字が重複しないN桁の数値」が必要な具体的な場面が想像できませんが、どこかで使えるといいなー。

当サイトで使用しているWPテーマ

<初心者でも簡単に利用することが可能な高品質高機能ワードプレステーマ>

品質・機能共に非常にハイスペックなWordPressテーマでありながら、HTMLやCSSといった知識が無くとも画面操作のみで美しいデザインのブログを簡単に構築することが可能となっています。カスタマイズ性に富んでいる為、同じテーマを使っているサイトと似たようなデザインにもなりにくく、オリジナリティ溢れるサイトデザインを作り上げる事が出来ます。

デザインのみならず、Googleの規約に準拠したSEO対策、無期限・無制限で利用可能なメールサポート、継続的な機能追加(バージョンアップ)等々、サイト構築・運営にひとしきり必要なサポートが非常に手厚いのも特徴です。

また、Diver開発にはアフィリエイトプログラムの開発に携わっていた技術者が思考をこらした工夫が盛り込まれており、収益化を目指すブログに最適なテーマとなっています。更に一度購入すれば自身が所有する複数サイトに追加料金なしで適用できるというお値打ち仕様も魅力の一つとなっています。

Twitterでフォローしよう

おすすめの記事