Excel formula: Naključna številka, ponderirana verjetnost -

Kazalo

Splošna formula

=MATCH(RAND(),cumulative_probability)

Povzetek

Če želite ustvariti naključno število, ponderirano z dano verjetnostjo, lahko uporabite pomožno tabelo skupaj s formulo, ki temelji na funkcijah RAND in MATCH.

V prikazanem primeru je formula v F5:

=MATCH(RAND(),D$5:D$10)

Pojasnilo

Ta formula se opira na pomožno tabelo, ki je vidna v območju B4: D10. Stolpec B vsebuje šest številk, ki jih želimo kot končni rezultat. Stolpec C vsebuje utež verjetnosti, dodeljeno vsaki številki, vneseno v odstotkih. Stolpec D vsebuje kumulativno verjetnost, ustvarjeno s to formulo v D5, kopirano:

=SUM(D4,C4)

Upoštevajte, da kumulativno verjetnost namerno premikamo za eno vrstico navzdol, tako da je vrednost v D5 enaka nič. S tem želimo zagotoviti, da MATCH lahko najde položaj za vse vrednosti do nič, kot je razloženo spodaj.

Za generiranje naključne vrednosti s pomočjo utežene verjetnosti v pomožni tabeli F5 vsebuje to kopirano formulo:

=MATCH(RAND(),D$5:D$10)

Znotraj MATCH vrednost iskanja zagotavlja funkcija RAND. RAND ustvari naključno vrednost med nič in 1. Iskalna matrika je obseg D5: D10, zaklenjen, da se ne bo spreminjal, ko bo formula kopirana v stolpec.

Tretji argument za MATCH, vrsta ujemanja, je izpuščen. Ko je vrsta ujemanja izpuščena, MATCH vrne položaj največje vrednosti, ki je manjša ali enaka iskalni vrednosti *. V praksi to pomeni, da funkcija MATCH potuje vzdolž vrednosti v D5: D10, dokler ne zasledimo večje vrednosti, nato pa "stopimo nazaj" v prejšnji položaj. Ko MATCH naleti na vrednost, večjo od največje zadnje vrednosti v D5: D10 (.7 v primeru), vrne zadnji položaj (6 v primeru). Kot smo že omenili, je prva vrednost v D5: D10 namerno nič, da se zagotovi, da iskalne tabele "ujamejo" vrednosti pod .1 in vrnejo položaj 1.

* Vrednosti v območju iskanja je treba razvrstiti po naraščajočem vrstnem redu.

Naključno ponderirana besedilna vrednost

Če želite vrniti naključno tehtano besedilno vrednost (tj. Neštevilsko vrednost), lahko vnesete besedilne vrednosti v obseg B5: B10, nato pa dodate INDEX, da vrnete vrednost v tem obsegu, glede na položaj, ki ga vrne MATCH:

=INDEX($B$5:$B$10,MATCH(RAND(),D$5:D$10))

Opombe

  1. Ta pristop sem naletel v objavi na forumu na mrexcel.com
  2. RAND je spremenljiva funkcija in se bo preračunal z vsako spremembo delovnega lista
  3. Ko imate naključne vrednosti, uporabite prilepite posebne> vrednosti, da po potrebi zamenjate formulo

Zanimive Članki...