多段階選択リストを用いたテストデータ作成




[Excel Worksheet関数]多段階選択リストを用いたテストデータ作成

発端

どのツィートかは忘れましたが、2つのリストの複数列を比較して差異のある行だけを抽出したいという話題がありました。

結局その話題には間に合わなかったのですが、その際、掲題の通り、多段階選択リストについてテストデータをランダム生成するWorksheet関数の使いかたを思いつきましたので、備忘もかねて書いておきます。

数式

まず、今回のケースでは、リストの選択肢を名前付き範囲設定をしておいてから使う方法を採りました。

1段目:=INDEX(種類,RANDBETWEEN(1,COLUMNS(種類)))

2段目:=INDEX(INDIRECT(B2),RANDBETWEEN(1,ROWS(INDIRECT(B2))))

f:id:wd4096:20190624040702p:plain

軽く説明すると。

1段目の数式で、「種類」リストからランダムに1個文字列を取り出し、

2段目の数式で、1段目の文字列を元にしたリストからランダムに1個文字列を取り出しています。

以下、名前付き範囲の設定状況です。

f:id:wd4096:20190624040605p:plain

f:id:wd4096:20190624040624p:plain

f:id:wd4096:20190624040636p:plain

f:id:wd4096:20190624040650p:plain

まとめ

既に同じような方法でテストデータを作成している方も居るかもしれませんが、もしもお役に立てたら幸いです。

まあ、似たような結論になりそうな気はしますが。

なお、本数式には改善の余地が多分にあります。

3段階のリストにした場合、もしくはデータ量が多い時、名前付き範囲の定義を不要にする工夫が必要になってくるはずですし、重複を予防するロジックも必要に応じて付け加える必要がります。

まあ、このくらいで。