DaciaClub Logo

Welcome Guest ( Log In | Register )

 
Reply to this topicStart new topicStart Poll

Outline · [ Standard ] · Linear+

> Selecție aleatoare de m din n, în Excel

Brainie
post 22 Nov 2007, 14:20
Post #1


Membru autentic


Group: Members
Posts: 464
Joined: 2 May 07
From: Bucuresti




Se dă următoarea problemă: am un șir finit de n numere consecutive (câte unul într-o celulă). Se cere selectarea aleatoare a m dintre acestea, fără repetări, unde m <= n. Fiecare număr selectat va fi introdus într-o celulă separată. Selectarea aleatoare se va face după validarea intrării într-o celulă specificată, sau la click pe un buton special, are mai puțină importanță.

Aplicație practică: dintr-o listă de multe întrebări vreau să obțin chestionare cu un anumit nr. de întrebări. Bineînțeles chestionare diferite (nu deranjează dacă unele întrebări se repetă în mai multe chestionare), dar fără repetarea unei întrebări în același chestionar.

Sunt convins că se poate în VBA, dar nu vreau așa. Doar în worksheet-uri. Eu nu am găsit soluție. Am o soluție "șmecheră", dar care nu respectă în totalitate cerința: să împart lista de întrebări în porțiuni și să selectez aleator câte o întrebare din fiecare porțiune. Altceva nu știu.

Și ar mai fi o problemă adițională: să pun întrebările selectate în ordinea din lista inițială (de la ușor la greu), dar asta e mai puțin important.

Mulțumiri anticipate

PS Am folosit cuvântul "chestionar" ca să vă dau fiori, dar nu, nu sunt chestionare pentru poliția rutieră !


--------------------
Ex Dacia 1310 Li ; Ex Logan ABS+ 1.6 MPI 2007
User is offlineGalerie FotoPM
Go to the top of the page
+
tmanbone
post 22 Nov 2007, 17:42
Post #2


Membru incepator


Group: Members
Posts: 39
Joined: 22 March 06




Poti folosi functia RAND pentru a genera o lista aleatoare de numere, dar are niste "deficiente":
- celulele se recalculeaza de cate ori folosesti alta formula in worksheet - deci dupa generare ar fi bine sa copii lista in alt loc (paste as values);
- RAND iti poate genera de mai multe ori acelasi numar (aici te gandesti tu cum rezolvi) .... si numere sunt reale, deci ai nevoie si de un ROUND/INT

Apoi... un VLOOKUP pe fiecare numar o sa-ti creeze lista de intrebari.

Spor!

22 Nov 2007, 17:55:
O adaugare, poti folosi si RANDBETWEEN (care iti genereaza numere intregi), dar... "If this function is not available, and returns the #NAME? error, install and load the Analysis ToolPak add-in. On the Tools menu, click Add-Ins. In the Add-Ins available list, select the Analysis ToolPak box, and then click OK. "

This post has been edited by tmanbone: 22 Nov 2007, 17:55


--------------------
Dacia / Opel - 1310 / Astra Caravan - 1991 / 2001 - --- / ---
User is offlineGalerie FotoPM
Go to the top of the page
+
deconectat
post 22 Nov 2007, 18:38
Post #3


Membru cu avatar de sezon


Group: Members
Posts: 1.116
Joined: 11 January 05
From: Brasov




Eu nu cred ca se poate fara VBA...sau poate ca nu ma ajuta pe mine imaginatia acum. Daca vrei cu VBA, te ajut eu.
Sau s-ar putea fara Excel...dar probabil ca nici asta nu te intereseaza...


--------------------
logan 1.6 8v ambition .
Ex. DSN Rapsodie
User is offlineGalerie FotoPM
Go to the top of the page
+
Asi
post 22 Nov 2007, 20:07
Post #4


Camaro SS


Group: Members
Posts: 930
Joined: 24 July 05
From: Bucuresti




daca vrei te ajut la o asocierea unui server-client sau chiar si prin banalul DDE, la o functie random din matlab. mi se pare mai simplu.


--------------------
Mitsubishi/Mercedes Carisma/B-class 2003 1.9 DI-D/2007 200CDI - B 79 ASI/Bxxx
"Cei care au puterea de a constrange n-au nevoie sa recurga la judeacata" (Thucydides, 1, 77, 2)
User is offlineGalerie FotoPM
Go to the top of the page
+
deconectat
post 22 Nov 2007, 20:13
Post #5


Membru cu avatar de sezon


Group: Members
Posts: 1.116
Joined: 11 January 05
From: Brasov




Cred ca vrea ceva cat mai simplu, care sa ruleze doar la client si sa mearga si pe calculatoare mai vechi. Excel ar fi o solutie rezonabila...dar nu cred ca poate sa faca intrebarile sa nu se repete fara sa foloseasca vba.


--------------------
logan 1.6 8v ambition .
Ex. DSN Rapsodie
User is offlineGalerie FotoPM
Go to the top of the page
+
Asi
post 22 Nov 2007, 20:51
Post #6


Camaro SS


Group: Members
Posts: 930
Joined: 24 July 05
From: Bucuresti




pai si nu se poate compila un executabil separat sa iti faca EXACT ce iti trebuie tie.. eventual extras din matlab, sau din excel, sau versiunea cea mai profi access? asta ca sa iti fie utila treaba.
dca tie nu-ti place acel ceva nu inseamna ca nu se poate mult mai simplu


--------------------
Mitsubishi/Mercedes Carisma/B-class 2003 1.9 DI-D/2007 200CDI - B 79 ASI/Bxxx
"Cei care au puterea de a constrange n-au nevoie sa recurga la judeacata" (Thucydides, 1, 77, 2)
User is offlineGalerie FotoPM
Go to the top of the page
+
tmanbone
post 22 Nov 2007, 23:02
Post #7


Membru incepator


Group: Members
Posts: 39
Joined: 22 March 06




Cred ca am rezolvat (daca am inteles bine cerintele tale).

Am ramas la RAND si pentru pentru ca numerele sa fie distincte, le-am "rankat". Tinand cont de faptul ca RAND produce numere reale... cred ca sunt sanse minime sa obtii rankuri egale.

Apoi lookup pe rank in lista originala de intrebari... si gata. Vezi fisierul (schimbi extensia din .doc in .xls).

wacko.gif

Attached File(s)
Attached File  randoms.doc ( 22k ) Number of downloads: 140


--------------------
Dacia / Opel - 1310 / Astra Caravan - 1991 / 2001 - --- / ---
User is offlineGalerie FotoPM
Go to the top of the page
+
deconectat
post 23 Nov 2007, 09:05
Post #8


Membru cu avatar de sezon


Group: Members
Posts: 1.116
Joined: 11 January 05
From: Brasov




Foarte interesanta solutia! smile.gif

@Asi: Se poate face ce zici tu; cel mai simplu (si mai profi) cred ca ar fi in delphi, dar nu cred ca are rost sa invete omul un limbaj de programare doar pentru asta. Oricum, e tare interesant in excel...e un bun exercitiu de imaginatie. wink.gif


--------------------
logan 1.6 8v ambition .
Ex. DSN Rapsodie
User is offlineGalerie FotoPM
Go to the top of the page
+
Brainie
post 23 Nov 2007, 11:07
Post #9


Membru autentic


Group: Members
Posts: 464
Joined: 2 May 07
From: Bucuresti




Tocmai mă resemnasem și mă pregăteam de VBA (ce-mi trebuie mie nu e prea complicat) când mi-ați dat speranțe.

tmanbone: știam de RAND și RANDBETWEEN, dar nu pot să evit repetările; nu mă gândisem că la orice modificare în worksheet se regenerează. ai dreptate. Să transform din nr. real în întreg în domeniul dorit de mine nu e nicio problemă.

deconectat: prefer excel pentru că se găsește cam pe orice calculator, este foarte ușor de completat actualizat baza de date cu întrebări

asi: cam vorbești limbi străine pentru mine Cu ceva chin reușeam bănuiesc un executabil în Visual Basic (numai), dar vroiam mai simplu. Access e mai complicat (decât Excel), plus că nu se găsește peste tot.

tmanbone: Acum deschid atașamentul să văd ce-i acolo.

LE Ideea e supermișto. Cred că mă rezolvă. Mai rămâne să mă dezmeticesc ca lumea ca să o pun în practică.

Mii de mulțumiri lui tmanbone și tuturor celorlalți pentru neuronii uzați.

LLE: e foarte promițătoare soluția, până acum merge; și tot pe ideea asta realizez și ordonarea identică cu lista inițială. Și, apropo, am folosit VLOOKUP combinat cu MATCH; direct VLOOKUP (LOOKUP) nu merge pentru că valorile "rankate" nu sunt în ordine.

This post has been edited by Brainie: 23 Nov 2007, 13:57


--------------------
Ex Dacia 1310 Li ; Ex Logan ABS+ 1.6 MPI 2007
User is offlineGalerie FotoPM
Go to the top of the page
+
tmanbone
post 23 Nov 2007, 14:22
Post #10


Membru incepator


Group: Members
Posts: 39
Joined: 22 March 06




N-am inteles nevoia pentru MATCH, in exemplul meu VLOOKUP era facut pe valoarea rankata (una singura) in lista initiala (unde intrebarile sunt intr-adevar in ordine)... deci, de ce ai avea nevoie de rankurile alea in ordine pentru LOOKUP nu stiu...

Mai uite-te odata in exemplul meu, mie mi se pare ca merge biggrin.gif


--------------------
Dacia / Opel - 1310 / Astra Caravan - 1991 / 2001 - --- / ---
User is offlineGalerie FotoPM
Go to the top of the page
+
deconectat
post 23 Nov 2007, 14:43
Post #11


Membru cu avatar de sezon


Group: Members
Posts: 1.116
Joined: 11 January 05
From: Brasov




Eu ma gandisem la Delphi pentru ca e foarte usor de invatat, nu necesita nimic instalat pe calculatorul clientului (in afara de windows), poti face programul sa arate bine, iar baza de date ar putea fi chiar si un simplu fisier text.
Daca ramane excel, ai grija ca lista de intrebari (cu tot cu raspunsuri) va fi relativ usor de citit de catre utilizatori; Ar fi bine sa iei ceva masuri de protectie.

@initiator: Nu e nevoie de Match. Merge perfect cum e acum. Vlookup cauta in prima coloana linia cu cu valoarea din coloana E (adica rank-ul).


--------------------
logan 1.6 8v ambition .
Ex. DSN Rapsodie
User is offlineGalerie FotoPM
Go to the top of the page
+
Brainie
post 26 Nov 2007, 12:28
Post #12


Membru autentic


Group: Members
Posts: 464
Joined: 2 May 07
From: Bucuresti




Corect băieți, urmărind mai cu atenție exemplul, văd că pot renunța la MATCH. Eu am aplicat mai pe dos ideea cu rank-area și din cauza asta am avut nevoie de MATCH (pentru chestionar nu am extras m întrebări cu numerele de ordine în coloana E, primele de sus în jos, ci am vrut să le extrag pe cele cu numerele din coloana E de la 1 la m). Dar asta nu are nicio importanță, ideea cu rank-area a fost de bază. O să fac totuși ca voi pentru că e mai simplu (din punctul de vedere al formulelor) și nu țin să complic un lucru dacă există alternativă.

deconectat: fișierul stă la mine în calculator sau în buzunar (pe memory stick) deci nu-l vede niciun neavenit decât dacă sunt eu neglijent. Rezolvitorii văd numai chestionare tipărite.


--------------------
Ex Dacia 1310 Li ; Ex Logan ABS+ 1.6 MPI 2007
User is offlineGalerie FotoPM
Go to the top of the page
+
Brainie
post 18 Sep 2015, 13:04
Post #13


Membru autentic


Group: Members
Posts: 464
Joined: 2 May 07
From: Bucuresti




O problemă de word de data asta:

Vreau ca într-un document word să scriu o singură data un număr (în titlu de exemplu), și apoi numărul respectiv să se autointroducă în anumite locuri prestabilite în același document (care e tip șablon, nu compunere liberă). Adică să nu scriu eu același număr de mai multe ori.

Vreau ceva similar cu operația asta în Excel: pun în A1 o valoare, și oriunde mai e nevoie de aceeși valoare, pun =A1; când schimb ce e în A1, se schimbă și celulele legate.


--------------------
Ex Dacia 1310 Li ; Ex Logan ABS+ 1.6 MPI 2007
User is offlineGalerie FotoPM
Go to the top of the page
+
zax
post 19 Sep 2015, 21:16
Post #14


Membru autentic


Group: Members
Posts: 724
Joined: 11 February 04
From: Bucuresti




"Field"

Iti faci un field in care scrii ce-ai de scris si apoi niste alte field-uri care copiaza primul field.


--------------------
Hyundai/ex Renault I30 1.5Tgdi 160cp/Clio Symbol Fidji 1.5dci 80cp aprilie 2022/iunie 2006
"Orice s-ar intampla, important este sa treci peste" (Gica, operator buldozer)
User is offlineGalerie FotoPM
Go to the top of the page
+
Brainie
post 22 Sep 2015, 11:52
Post #15


Membru autentic


Group: Members
Posts: 464
Joined: 2 May 07
From: Bucuresti




Pe la fielduri am răscolit și eu. Dar nu i-am dat de cap. Dacă știi:

-cum definesc primul câmp (cel în care voi scrie ceea ce va trebui repetat în celelalte)
-cum le definesc pe celelalte (copy-paste-uri după primul)

Majoritatea tipurior de câmpuri sunt predefinite, se completează cu informații deja existente (data curentă, data creării, numele fișierului, autor etc).

O soluție ar fi să bag undeva la proprietățile fișierului numărul dorit, și pe ăsta îl va băga unde îi spun eu în textul documentului. Dar nu-mi place soluția asta (mai trebuie și comanda „actualizare câmp”).


Mulțumesc oricum.


--------------------
Ex Dacia 1310 Li ; Ex Logan ABS+ 1.6 MPI 2007
User is offlineGalerie FotoPM
Go to the top of the page
+
zax
post 22 Sep 2015, 13:31
Post #16


Membru autentic


Group: Members
Posts: 724
Joined: 11 February 04
From: Bucuresti




Primului ii dai un nume si celorlalte le dai o referinta cu numele primului. Nu mai stiu exact cum se face si n-am timp acum sa caut dar uite un exemplu facut de mine, poate te ajuta. Schimba-i extensia in docx

Tema_02___Copy.jpg ( Size: 17.7k ) Number of downloads: 50


Din pacate trebuie sa-i dai "update field". Eu altfel nu stiu. cauta ca poate exista vreo posibilitate sa updateze toate "field"-urile odata.


--------------------
Hyundai/ex Renault I30 1.5Tgdi 160cp/Clio Symbol Fidji 1.5dci 80cp aprilie 2022/iunie 2006
"Orice s-ar intampla, important este sa treci peste" (Gica, operator buldozer)
User is offlineGalerie FotoPM
Go to the top of the page
+
Reply to this topicTopic OptionsStart new topic


1 User(s) are reading this topic (1 Guests and 0 Anonymous Users)
0 Members:
 

Lo-Fi Version  Harta site  Parteneri  Jocuri online  Curs Valutar  HRH Haine din lana merinos Time is now: 3rd June 2025 - 08:19
Forum Renault