複数個存在する数値のうち、それらを重複しないようにひとつづつ選びたいとき、どのような操作(又は関数)をすればよいでしょうか。
具体的に言いますと、
A列に「0001」という数値(コード)を持つ行が3行あるが、次の数値「0002」は6行ある、次の数値「0003」は12個あるのだが、さらにその次の数値「0004」は2個しかない、というケースで、個々の数値はランダムに出現している、という状態です。
わかりにくい場合はさらにご質問に付加して説明をいたしますので、よろしくお願いいたします。
意味が良くわからないです。
A列に0001×3、0002×6、0003×12、0004×2のデータがありそれをランダムに並べるという意味でしょうか?
例
0004
0001
0002
0001
0003
0001
0002
0003
0002
0002
0002
0003
0003
0004
0002
・・・
数学でいう所の重複順列や重複組合せのようなものでしょうか。
1.元になる以下のコードは事前に与えられていて、それをランダムにするわけでしょうか?
そうであれば範囲が判ればスワップ(2つのセルをランダムに選んで交換)を繰り返せばランダムになります。
0001×3、0002×6、0003×12、0004×2
2.それとも以下のコードも自動生成するわけでしょうか。例えばコード1(0001)がn件、コード2(0002)がm件、・・・という情報を元に特定の列にランダムになったものを生成するわけでしょうか
0001×3、0002×6、0003×12、0004×2
意外に提示のような処理には色々な方法があります。
いくつか挙げますのでお好きなものを。
説明はA列に該当のデータが入っていると定義しておきます。
以上ご参考まで。
ピボットテーブルを使えば簡単に出来ます。
A列のデータの先頭行の上に項目名(例えば、“コード”)を入れ、項目名とデータを「使用するデータの範囲」として指定し、レイアウトで行を“コード”、データを“データの個数/コード”に指定してピボットテーブルを作成すれば、コードを重複しないようにひとつづつ選べます。
後はコードをコピーして他でも使えます。
この方法の利点は、ピボットテーブルでデータの個数をカウントしていますので、元データのデータ数と一致していることを確認することで漏れがないことを確認できます。
ありがとうございます。ピボットテーブルを使って作業することがないものですから全く気がつきませんでした。早速ためしてみます。
「ひとつづつ選びたい」とおっしゃる意味が分かりにくいのですが、
1.データ→集計で「グループの基準」でA列を選択すると、A列に存在するデータ毎の集計ができます。
2.データ→フィルタオプションで「重複するレコードは無視」をチェックすれば、A列に存在するデータのリストを抽出できます。
3.http://www.eurus.dti.ne.jp/~yoneyama/Excel/kansu/d_bas.htm
こちらにあるような各種データベース関数を使って、元のリストをデータベースとしてA列にあるデータ毎にデータの個数やB列にある数値の平均などの列を加えお好みの表を作成できます。
ありがとうございます。ご教示いただいた内容が質問の回答となります。早速実行してみます。
拙い質問でしたが趣旨をご理解頂きありがとうございます。とても助かります。早速実行してみます。