0

初めてのタイマーなので、ルールを守っていただければ幸いです...

バックグラウンド

Excel 2010 ブック内に ~500 エントリ (および増加中) のデータベースがあります。エンティティは、クイズの Q&A です。データは 3 つの列にフォーマットされます。

  • Col A = 固定 Q 番号 (1、2、3 など)
  • Col B = 質問文
  • Col C = 回答テキスト。

ワークブックの次のシートは、次のように、設定されたクイズ (私の場合は 80 個の Q) の質問のランダムなショートリストを生成する場所です。

  • Col A = 利用可能な Q 番号
  • Col B = RAND() 乱数を生成する式
  • Col C = 次の式を使用して、RAND() 出力を使用して、「クイズ セット」の 80 個の質問の一意のリストを生成します。

=INDEX(ROW($2:$5001),RANK(B2,$B$2:$B$5001))

RAND() 関数は揮発性であるため、乱数 80 のスナップショットを取得するマクロを作成しました。これらを 3 番目のワークシートにカット アンド ペーストし、それに対して VLOOKUP を実行して、生成された質問番号に一致する Q&A を取得します。

質問

これは毎月のクイズなので、Q&A の DB から毎月繰り返し質問することは避けたいと思います。質問の数に基づいて、4 か月間にわたって繰り返しを回避できれば問題ないということが合意されました。マクロを実行するたびに利用可能な質問のリストを削除して、前の 4 回のマクロ実行で使用した質問番号を削除する方法はありますか? 答えを得るために考えられる限りのことをグーグル検索しましたが、正しい検索基準を使用していないか、答えが見つからないだけです。上記の INDEX 関数を使用して 80 の質問のショートリストを作成する元の情報を見つけたので、ここから始めようと思いました。

4

1 に答える 1

0

どこかで選択した以前のクイズの質問のリストを保持する必要があります。

列 B を に変更すると=RAND()-COUNTIF(Range_Where_Previous_q_listed,A2)、乱数は以前にリストされた質問に対して負になり、RANK関数の一番下に落ちます。

于 2013-10-02T13:55:00.177 に答える