2017-05-12 9 views
1

私は医薬品のリスクレベルとリスクレベル別の無作為化によるデータの階層化を試みています。危険度で都市を選ぶとき、無作為化が比例するようにしたい。層別化と無作為抽出で

Total.City.Region Risk Score Total.City.Regionl.Risk.Desc City.Scaled 
4.43         1. Extremely Low Risk  0.129 
443.32        2. Very Low Risk    0.164 
44.33         1. Extremely Low Risk  0.132 
110.83        2. Very Low Risk    0.137 
221.66        2. Very Low Risk    0.146 
288.16        2. Very Low Risk    0.151 
376.82        2. Very Low Risk    0.158 
4.43         1. Extremely Low Risk  0.129 
44.33         1. Extremely Low Risk  0.132 
110.83        2. Very Low Risk    0.137 

これは私のデータの一部です。したがって、各都市には都市全体のリスクスコアがあり、リスクレベルはリスクスコアに基づいています。その後、スコアをスケールして正規化しました。今私はデータをリスクレベルで階層化する式を作成したいと思っています。 (非常に低いリスク、非常に低いリスク、そして低いリスクから)を選び、各レベルからランダムな都市(合計で5つの都市)を選んでください。比例的な方法。

私はこれを行うことができる方法上の任意のヘルプや提案は非常に参考になります

は事前にありがとうございました。

+0

単純なスプレッドシート式よりも、VBAのユースケースに似ています。ピボットテーブルは階層化部分に役立ちます。 –

+0

ゲーリーにあなたの提案をありがとうございます。誰かがシートに新しいデータを入力するたびに層別化とランダム化を自動的に実行しようとしていますが、これをExcelで実行する方法が見つかりません。 –

答えて

0

Office 365を使用している場合は、SWITCHステートメントを使用してCity.Scaled列を評価し、テキストリスクの説明を返すことができます。動作する例えば:それはデフォルト続いて、一致した場合

=SWITCH(C2,IF(VALUE(C2) < 0.135,C2,""),"ExLow","low") 

0.129 ExLow 
0.164 low 
0.132 ExLow 
0.137 low 
0.146 low 
0.151 low 
0.158 low 
0.129 ExLow 
0.132 ExLow 
0.137 low 

上記スイッチ式における第1項は照合する式を含む、次の戻り値比較値です。第2と第3を126回まで繰り返すことができます。

0

私はテストデータでこれを試してみましたが、うまくいきました。この例の目的のために、の合計市リスクスコアが列Aであると仮定しましょう、リスクの説明は、列Bであり、かつスケールドスコアは列Cにある:列B

  • 起動の

    1. ソートD2では、次の式を実行します:=IF(B2<>B3,ROW(B2),"")。これを下にドラッグします。基本的には、リスク記述の各ブロックの終わりを示す行を見つけようとしています。
    2. G2を起動するには、カテゴリ数が1,2,3 ...になるまで1,2 ...からリストを作成します。私はサンプルデータに3つしかないので、1,2,3が必要なものすべてであるかもしれません。
    3. H1では、 "Start"というヘッダを作成しましょう。これにより、リスク記述のブロックが開始される場所が記録されます。私たちは少しここに戻ってきます。
    4. I1では、 "End"というヘッダーを作成します。これにより、リスク記述のブロックが終了する場所が記録されます。 I2では、次の式を使用します:=LARGE(D:D,3-G2+1)。ここでも、3はリスク記述の数を表します。このミニテーブルの最後までドラッグします。
    5. ホップバックH2に。 H2を1に設定します。H3は、=I2-1です。これを下にドラッグします。
    6. J1では、「リスクサイズ」の各ブロックのエントリ数を記録するために「サイズ」というヘッダーを作成します。 J2では、式:=I2-H2+1(行の終わり - 先頭行+1)を使用します。これを下にドラッグします。
    7. ほとんど完了! K1で、 "Random"というヘッダーを作成します。 K2では、次の式を入力してください:=H2+RANDBETWEEN(0,J2-1)。下にドラッグします。基本的には、ブロックのサイズより0〜1小さい乱数を作成します。それをブロックの最初の行に追加します。これにより、各リスク記述のリスク記述のブロック内にランダムな行が表示されます。
    8. L1では、「値」というヘッダーを作成します。 L2では、式:=INDIRECT("C"&K2)を使用します。下にドラッグします。選択したランダムな行のScaled Scoreが返されます。他のデータが必要な場合は、CをAまたはBに変更します。

    ここで、列Lには、各ブロックから1つのランダムなエントリがあります。それぞれから5を望むなら、5回リフレッシュすることができます。

    注:これは、1つのエントリが2回選択された場合のコントロールではありません。

  • +0

    こんにちはAnkur、あなたの助けに感謝します。 D2の数式に問題があり、NAMEを表示しています。それはタイプミスかもしれませんか?新しいデータが挿入されるたびに自動的に乱数とランダム化を行う方法はありますか? –

    +0

    こんにちは - 私は戻ってくるのにとても時間がかかってしまい、すみません!これは解決されましたか?そうでなければD2の問題を調べることができます! –

    関連する問題