Slumpa med Excel
Med kalkylbladsfunktionerna SLUMP och SLUMP.MELLAN kan du skapa slumptal och till exempel göra slumpmässiga urval eller slumpa värden för simuleringar.
Om du skall göra ett slumpmässigt urval är det enklaste att lägga till en kolumn i din lista som du vill göra urvalet från. I den kolumnen lägger du sedan in funktionen =SLUMP() för varje post. Därefter behöver du bara sortera din lista med SLUMP-kolumnen som sorteringsnyckel. Din lista kommer därefter vara sorterad i slumpmässig ordning och om du till exempel väljer de tio första i den listan så kan du säga att dessa valts ut slumpmässigt.
Här en kort 2 minutersfilm om hur man kan göra ett slumpmässigt urval genom att lägga till SLUMP:
SLUMP genererar ett slumptal i form av ett decimaltal från 0 till 1. Ibland kan detta kännas otympligt, till exempel om du vill använda detta slumptal i en formel. Ett alternativ är du funktionen SLUMP.MELLAN. Med SLUMP.MELLAN generar du slumpmässiga heltal mellan intervall du själv anger. = SLUMP.MELLAN(1;100) ger dig till exempel ett slumpmässigt heltal mellan 1 och 100.
Jag använder själv SLUMP.MELLAN ofta när jag skapar övningsdatabaser eller när jag skall simulera och vill ha en lista med värden inom vissa intervall.
I följande film tar jag ett steg längre och visar jag hur man kan använda både SLUMP och SLUMP.MELLAN för att göra ett slumpmässigt urval och en lista med slumptal inom givna intervall.
/Anders
PS! Dagens boktips:
En bok jag kan rekommendera just nu är Jelen, Excel 2016 In Depth (QUE Förlag) . En heltäckande bok skriven av en av mina excelgurus, Bill ”MrExcel” Jelen (kolla MrExcels kanal på YouTube!). Är du nybörjare med Excel och vill ha en bok på svenska som ger dig grunderna kan jag rekommendera Excel 2016 Grunder (Eva Ansell) som också har skrivit Excel 2016 Fördjupning, en bok som jag själv brukar använda på mina Excelkurser.
.
Hej ANDERS. Älskar Excel.och impad av det kag läst här-. Bjöd dig på kaffe för någon dag sen. hoppas det var Expresso av Arabica bönor.
Men som de flesta så fastnar man i en rutin. Dvs det man behöver i vardagsjobbet och det innebär att folk som jag bara använder 10% av detta gigantiska mästerverk. Jag har en fråga. Har läst allt jag sett här om slump. Jag har en lista mellan 1001 och 9999 . Har kopierat bort formlerna i A1-A9999 och bara nummer kvar i B1-B9999. De är alltså i nummeordnimng i B.
Har försökt få listan omkastad slumpvis så att alla heltalen är med men i en salig röra- SLUMP.MELLAN ger 1 tal men jag vill ha alla. Finns det en funktion för det?
Jag har markerat hela listan och provat med SLUMP.MELLAnNpå B1 som jag sen har kopierat ned till slutet. Me n
Mvh
Bill
Haj och tack för kaffet (blev några pods till min Nespresso 😊!
Lite osäker på hur du menar. Men om jag har en lång lista med tal som jag vill ha i slumpmässig ordning så brukar jag göra så här:
1. Jag lägger till en kolumn bredvid min lista, förenkelhetens skull så ger jag den rubriken Slump.
2. Sen lägger jag in en vanlig slumpfunktion i denna lista =SLUMP() som jag kopierar hela vägen ner till mitt sista värde.
3. Sen sorterar jag min lista (både kolumnen slump och den med mina tal) med kolumnen Slump som nyckel. Stigande eller fallande spelar ingen roll.
Då kommer min lista med tal hamna i helt slumpmässig ordning.
Notera att =Slump() genererar nya slumptal varje gång det sker en beräkning (t.ex. sortering). Så efter du sorterat så kommer du inte se att din lista med slumptal är sorterade. Men det spelar ju ingen roll. En fördel är att du varje gång du sorterar så kommer du få en ny slumpmässig ordning.
Vill du ”låsa” dins slumptal så att de inte ändras får du kopiera – klistra in dem som värde först.
Här har du en gammal film där jag visar denna teknik: https://www.youtube.com/watch?v=R8S2CjgGh_A
(fast det var kanske vad jag visade i min blogg också… så kanske missförstod jag ditt problem)
Mvh
Anders
Tack! Så bra förklarat. Jag kommer använda SLUMP.MELLAN för lottdragning i en förening jag är med i.
Super! Tack Anders!
Tack för denna förklaring om slumpmässigt urval i Excel . Det var precis jag letade efter. Mycket bra film!
hej Anders! jag håller på att göra en monte carlo simulering genom att slumpa fram värden i excel med intervallen men på alla resultat siffran blir 1 vad gör jag för fel?
formel är detta:
I = Cs*Rig*fh*kpl
där:
Cs =[0,1;0,5]
Rig =[0,001;0,01]
fh =[0,05; 0,5]
kpl = [0,005;0,05]
när jag slumpar varje intervall , t, ex : slump.mellan [0,1; 0,5] då får jag som resultat 1 , på alla slumpar och får också samma resultat dvs 1 på alla andra parametrar jag tror jag gör något fel men vet ej inte vad, skulle du kunna hjälpa mig?
Mvh/ tina
Oj, Tyvärr är detta överkurs för mig. Har aldrig gjort något liknande (även om jag sett metoden i läroböcker – men inte testat det i Excel). Testa att fråga på Eforum, där finns många skarpa hjärnor som brukar svara snabbt:
http://eforum.idg.se/forum/62-kalkylprogram-excel-m-fl/
Alternativt om någon annan ser detta får ni gärna svara.
mvh Anders
Slump.mellan returnerar bara heltal. Om du väljer intervallet 0,5 till 1 så kan den bara returnera 1. Alltså blir det alltid 1. Du kan göra så här om du vill ha en mindre upplösning. Ta t ex slump.mellan (o;100)/100 då får du ett tal mellan 0 och 1 som har stegintervalle en hundradel.
Precis vad jag sökte efter. Fin fin film du gjort.
En fråga; jag försöker hitta på ett sätt så att den slumpar ett nytt nummer på en viss intervall eller slumpmäsig intervall mellan 2 tider jag själv väljer. Typ som Bingo-nummer-dragning. Rullande nummer. Gör inget om samma nummer dras flera gånger. Vet du om de går med slump i excel?
Om jag förstår det rätt vill du slumpa mellan två tider…
Vill du slumpa mellan två tidsintervall, t.ex. mellan 06:00 och 18:00 kan man också använda SLUMP.MELLAN (RANDBETWEEN). Det enda man måste korrigera är att SLUMP.MELLAN enbart slumpar heltal mellan intervall och att tider i Excel är formaterade decimaltal. Du kan ju se min post om att räkna med tid i Excel för mer om detta.
http://andersexcel.se/rakna-med-tid-excel/
Om du skriver in 08:00 i cell A1 och 17:00 i cell A2 och sedan använder funktionen =SLUMP.MELLAN(A1;A2) så kommer du få svaret 0 (eller 00:00:00 beroende på hur du formaterar).
Anledningen till detta är att du då slumpar mellan två decimaltal som är mindre än 1.
06:00 är till exempel tidsseriekoden 0,25 och 18:00 är 0,75.
Tricket här blir att göra om tiden till ett heltal (t.ex. genom att multiplicera det med tusen) och sedan dividera resultatet med tusen (och formatera det till ett klockslag).
=SLUMP.MELLAN($A$1*1000;$A$2*1000)/1000
Om du inte vill ha en cellreferens till min- och maxtid kan man lägga in det i funktionen. Då behöver du veta vad tidseriekoden är för dina klockslag. Enklast att göra det är att skriva in tiderna i en cell (med formatet tt:mm) och sedan formatera det till en vanligt tal med fem decimaler (eller fler beroende på vilken precision du vill ha – fem decimaler brukar räcka för att få exakt sekund). 17:00 är tillexempel talet 0,70833 och 8:00 är 0,33333.
En formel som slumpar mellan 8:00 och 17:00 kan därför se ut så här:
=SLUMP.MELLAN(33333;70833)/100000
(formtera sedan till tid – högerklicka Formatera celler, välj talkategori Tid och det format du önskar)
Här har jag multiplicerat och delat med 100.000 för att få mer exakt precision.
Hoppas det var det du frågade efter.
/mvh Anders