Just nu i M3-nätverket
Gå till innehåll

Slumpmässigt urval (ev. OR funktion) i Excel


cochese

Rekommendera Poster

Hej!

 

Har ett problem då jag ska göra ett slumpmässigt urval i Excel. Jag har en lista på ca 20000 företag numrerade i excel. Ur dessa ska jag göra ett slumpmässigt urval på 600 företag som jag sedan tänkte basera en undersökning på. Så jag har en kolumn numrerad från 1-20000 och en kolumn med 600 slumptal. Nu vill jag i en tredje kolumn ställa upp en funktion som kollar om varje enskilt nummer från 1-20000 finns med bland slumptalen och isåfall ge ut "sant" eller falskt". Har varit inne på OR funktionen i Excel. Jag trodde följande funktion skulle fungera:

 

OR(A1=B1:B600)

 

Dvs den kollar värdet i cell A1 och jämför med alla slumpade värden från B1 till B600 och finns A1s värde med så får jag ut ett "sant". Sedan var min mening att autofiltrera på "sant" och därmed få 600 slumpade företag.

 

Hoppas någon kan ta sig tid och hjälpa mig med detta. Jag vet att detta går att göra manuellt men det är ganska jobbigt.

 

Tack på förhand!

Erik

 

Länk till kommentar
Dela på andra webbplatser

Du vill alltså ha ut 600 unika slumptal? Svårt med Excel inbyggda formler, XLDennis har ett exempel på sin sida som fungerar för en mindre mängd tal men tiden det tar, antalet iterationer som krävs, ökar mycket snabbt med mängden tal som ska generas.

 

Nej, det är för omständigt, så här skulle jag göra:

 

I en kolumn bredvid dina företag, skriv inslumpformlen utmed hela listan på företag. Sortera därefter listan baserat på slump-kolumnen och kopiera sedan ut de 600 översta företagen.

 

Enkelt och snabbt.

 

Edit

Din beräkning du försöker dig på tror jag kan fungera om du formar om den liet (jag rekommenderar dock fortfarande metoden jag beskivit ovan)

Du måste göra om det till en matrisfunktion och ur den beräknade matrisen plocka ut det värde du önskar. Exv:

{ = max(om(A1=B1:B600:Rad();0)) }

eller

{= summa(om(A1= B1:600;1;0)) }

{ } indikerar att det är en matrisformel och du ska inte skriva dit det. Excel placera med där om du matar in formeln som en matrisformel, dvs avslutar inmatningen med

CTRL+SHIFT+Enter

 

 

 

/T

 

Even when we know we´ll never find the answers, we have to keep on asking questions.

 

 

[inlägget ändrat 2005-04-26 14:20:37 av Monshi]

Länk till kommentar
Dela på andra webbplatser

Om jag förstår dig rätt så har du redan fixat slumpningen och har den skriven i B1-B600? Annars får du ju, precis som Monshi skriver problem (du kan inte slumpa utan återläggning). Hans "ful-trix" med sortering är helt klart enklast.

 

Hursomhelst. Om du verkligen har 600 slumpade, unika värden i b-kolumnen så kan du ta omvägen runt t.ex "antal.om" (eller LetaRad, eller en massa andra funktioner) för att kolla om ett tal i A-kolumnen finns i B. T.ex så här:

 

=OM(ANTAL.OM($B$1:$B$600;A1)>0;1;0)

 

eller bara:

=ANTAL.OM($B$1:$B$600;A1)

om du vill se om något företag har dragits flera gånger.

 

Helengelsk windows:

=IF(COUNTIF($B$1:$B$600,A1)>0,1,0)

Engelsk excel med svenska inställningar i windows...

=IF(COUNTIF($B$1:$B$600;A1)>0;1;0)

 

Vill du verkligen plocka ut 600 unika tal så måste ett makro vara den bästa lösningen. Har svårt att se fördelen med formler i det läget.

 

Länk till kommentar
Dela på andra webbplatser

Du hade förstått mig helt rätt, slumptalen fanns redan i kolumn B och denna formel fungerade utmärkt: =ANTAL.OM($B$1:$B$600;A1)

 

Va exakt vad jag ville ha, fick ut 1 i C-kolumnen för de företag vars ref.nr fanns med bland slumptalen i kolumn B. Sen var det ju inga problem att kopiera ut mitt urval till ett nytt excel-ark

 

Jag bockar och bugar för hjälpen, där sparade jag en hel del tid

Tack så mycket!

Erik

 

(poäng till båda för att ni tog er tid)

[inlägget ändrat 2005-04-26 21:26:47 av cochese]

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...