Rainbow Engine

IT技術を分かりやすく簡潔にまとめることによる学習の効率化、また日常の気付きを記録に残すことを目指します。

IT技術 (Technology)

エクセルで重複なくランダムにデータを選択する方法

投稿日:2022年11月22日 更新日:

<目次>

エクセルで重複なくランダムにデータを選択する方法
 実現したいこと
 実現方法
 関数の仕組み
 例の紹介
 参考記事
 筆者のぼやき

エクセルで重複なくランダムにデータを選択する方法

実現したいこと

一意なデータの中から、データをランダムに重複なく取得したい。

(例)
・テストデータをランダムにシャッフルする場合など
※ディープラーニングの計算をExcel上で行う際に、データを重複なくシャッフルするケースなど。

(図100)

サンプル
【サンプルダウンロードURL】

目次にもどる

実現方法

(構文)

=INDEX(SORTBY([データ範囲], RANDARRAY(ROWS([データ範囲]))), SEQUENCE([データ数]), {列数だけカンマ区切りで数字を1から記載})

(例)

=INDEX(SORTBY(B2:F31, RANDARRAY(ROWS(B2:F31))), SEQUENCE(30), {1,2,3,4,5})

(図111)

目次にもどる

関数の仕組み

内部で使われる1つ1つの関数について簡単に解説します。

ROWS(B2:F31)
→行数を取得します。今回の場合は「30」が返ります。

RANDARRAY(ROWS(B2:F31))
→行数(例:30)だけランダムな数値を縦に生成します。これをソートに利用します。

SORTBY(B2:F31, RANDARRAY(ROWS(B2:F31)))
→指定した範囲(B2:F31)のデータを、生成したランダム数値をベースに並べ替えます。

INDEX(SORTBY(B2:F31, RANDARRAY(ROWS(B2:F31))), SEQUENCE(30), {1,2,3,4,5})
→行(SEQUENCE(30))と列({1,2,3,4,5})を指定し、その交差部分を取得します。

※今回の場合、30行×5列(B~F列)のマトリクスが取得範囲になります。

目次にもどる

例の紹介

左側の表データを、ランダムに重複なく並べ替える処理を試してみます。
(ディープラーニングのテストデータを想定)

・Beforeの状態
(図121)


右表の、左上のセルに数式を挿入します。
(そこを起点に残りの部分は自動的に埋まります)

・Afterの状態
(図122)

(備考)
・この方法はExcelの「動的配列数式」と呼ばれ、範囲全体が自動で埋まる挙動は「スピル」と呼ばれます。
・この機能は「Excel for Microsoft 365」や「Excel 2021」以降で利用可能です。
・ランダムデータは、セルに変更を加える度にリフレッシュされます。

目次にもどる

参考記事

(図131)

動的配列数式とスピル配列の動作(Microsoft公式)

目次にもどる

筆者のぼやき

最近はOffice製品がどんどん進化しており、本機能もさることながら、Power Queryなど強力な機能も多数登場しています。
従来はVBAで実装していたような処理も、標準機能で実現できるようになってきました。
ローコード・ノーコードの流れが加速しており、エンジニア以外の方々でも便利機能が簡単に利用できるようになっています。
VBAは維持コストもかかるため、代替可能なものはどんどん置き換えていきたいところですね。

目次にもどる

Adsense審査用広告コード


Adsense審査用広告コード


-IT技術 (Technology)
-

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

AWSの始め方(アカウントの作成からPythonでS3バケット操作まで)

  <目次> (1) AWSの始め方(アカウントの作成からPythonでS3バケット操作まで)  (1-0) やりたいこと  (1-1) STEP1:AWSアカウントを作成する  (1-2) …

no image

P2P(Procure to Payment)とは?概要や流れをご紹介

  <目次> (1) P2P(Procure to Payment)とは?概要や流れをご紹介  (1-1) 概要  (1-2) 流れ   ●①必要性チェック(Indentify Needs) …

Windows10でWi-Fiが表示されない時の対処方法

  <目次> (1) Windows10でWi-Fiが表示されない時の対処方法  (1-1) 問題の整理  (1-2) 対策①:Wi-Fiサービスを有効化する  (1-3) 対策②:WLAN …

Azure DevOpsのReposをデスクトップアプリで操作する方法についてご紹介

  <目次> (1) Azure DevOpsのReposをデスクトップアプリで操作する方法についてご紹介  (1-1) 「GitHub Desktop」の導入手順  (1-2) 「GitH …

LinkedIn APIの使い方について(PythonでAPIコール疎通させるまで)

  <目次> (1) LinkedIn APIの使い方について(PythonでAPIコール疎通させるまで)  (1-1) STEP1:【任意】企業・団体ページの作成  (1-2) STEP2 …

  • English (United States)
  • 日本語
Top