Gasire valoare prin cautare in mai multe sheet-uri ??????

Informatii despre cum se utilizeaza Microsoft Excel 2003. Calcule, Formule, Functii, Tabele pivot, Analiza datelor, etc
DAN
Mesaje: 76
Membru din: Lun Oct 19, 2009 7:47 pm

Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de DAN » Lun Dec 07, 2009 8:08 pm

Salutare,
Cu ce functii sau combinatii de functii pot sa caut o valoare (text) in 4 sau mai multe (n ....) sheet-uri, iar valoarea gasita (text) sa fie returnata in cel de al cincilea sau in alt sheet.
Uuuuf, este un lucru foarte important pentru aplicatia la care lucrez.
Multumescccccccccccccccccccc anticipat !!!

Dr.Windows
Moderator
Moderator
Mesaje: 4570
Membru din: Vin Iul 31, 2009 7:32 am

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de Dr.Windows » Lun Dec 07, 2009 8:32 pm

1. Nu ai specificat daca acea cautare se face pe aceeasi coloana in toate cele 4 foi... este f. important, sau macar daca stii exact pe ce coloana cauti in fiecare foaie... sau ce cauti si cum cauti... (poti atasa si o "mostra"?...)

2. Nu ar fi mai simplu sa "imbini cele 4 foi si sa faci in final cautarea in una singura?... ;)

DAN
Mesaje: 76
Membru din: Lun Oct 19, 2009 7:47 pm

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de DAN » Mie Dec 09, 2009 12:39 am

Aceasta aplicatie pentru luarea comenzilor NU este un Sablon.
Avem 6 Zile pentru luarea Comenzilor, deci vom avea 6 Aplicatii.
Fiecare Aplicatie este UNICA pentru ca exista un numar diferit de sheet-uri corespunzator numarului de rute din acea zi.
Avem 3 sheet-uri in care preiau comenzile: X;Y;Z.
x = sheet-ul pentru ruta Bucuresti 1
y = sheet-ul pentru ruta Ploiesti
z = sheet-ul pentru ruta Brasov
In exemplul din attach avem doar 3 sheet-uri corespunzatoare celor 3 rute, dar pot exista pentru o zi pana la 15 sheet-uri corespunzatoare celor 15 rute
In partea de sus a acestor sheet-uri cu ajutor unei liste de tip Combo Box (parca asa se cheama) vom putea selecta clientii. Dupa ce am selectat clientul, sub el pe coloana introducem MANUAL comanda.
Mai avem 1 sheet D.C. (Declaratii de Conformitate). Aici este problema:
As dori ca in momentul in care in sheet-ul ,,D.C." in celula H8 selectez din lista firma ,,AA", Excel sa caute si sa extraga automat din cele 3 sheet-uri (exemplul meu in acest caz) sau 15 sheet-uri sau ,,n" sheet-uri comanda firmei ,,AA" si sa o afiseze in coloana D, intervalul de celule D11:D58.
Trebuie sa mai fac o precizare:
Firma ,,AA" care este deja selectata in sheet-ul ,,D.C." celula H8 va fi gasita de functia de cautare in sheet-ul Z celula F1 in acest exemplu, dar trebuie avut in vedere faptul ca firma ,,AA" poate sa fie saptamana viitoare in sheet-ul X sau Y sau alt sheet SI NU neaparat IN POZITIA CELULEI F1.
Concluzie: cautarea Numelui Magazinului se va face pe orizontala in zona D1:P1 in toate cele 3 sheet-uri (exemplul meu in acest caz) sau 15 sheet-uri sau ,,n" sheet-uri in alte cazuri, dar rezultatul (comanda magazinului) care trebuie RETURNAT va fi cel de pe coloana de sub Numele Magazinului.
Sper ca am reusit sa creez o imagine cat mai clara asupra a ceea ce as dori sa realizez.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de gecs » Mie Dec 09, 2009 3:36 pm

Cred ca pentru ceea ce vrei tu, datele trebuie reorganizate.

E perfect posibil sa ai TOATE datele comenzilor, pe produse, rute, firme, magazinele firmelor etc. INTR-O SINGURA FOAIE DE CALCUL - si asta e modalitatea prin care poti obtine informatiile dorite repede si corect. Daca in loc de range-uri folosesti TABELE (Data -> Insert -> Table) poti avea toate sculele necesare filtrarii si totalizarii coloanelor dupa ca criterii doresti, poate sa nici nu mai fie nevoie de formule de cautare.

In fisierul atasat ai un exemplu de organizare a datelor cu facilitati de selectare din lista in locul tastarii valorilor, acolo unde e posibil (Data Validation de tip "List" - drop-down combo) pe care poti sa-l incerci ca sa vezi cum functioneaza. E doar un exemplu - nu solutia finala de care ai nevoie, chiar daca pleaca de la unele date inscrise in fisierul atasat de tine.

Daca vrei sa continuam discutia pornind de la acest model de organizare a datelor, sau unul similar, e ok, putem discuta si modifica modelul respectiv dupa ce nevoi specifice ar avea nevoie "aplicatia"ta. Daca insa ramai la parerea ca singura modalitate de organizare a datelor e cea pe care ai descris-o mai sus (cu datele in care ai nevoie sa cauti distribuite pe mai multe foi de calcul), cu parere de rau, eu nu voi mai continua discutia pentru simplul motiv ca nu cred ca o asemenea modalitate de organizare a datelor poate duce altundeva decat la complicatii inutile, formule kilometrice, sau proceduri VBA fara rost.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

DAN
Mesaje: 76
Membru din: Lun Oct 19, 2009 7:47 pm

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de DAN » Sâm Dec 12, 2009 9:27 pm

Lucian si Gecs va multumesc pentru promtitudinea cu care incercati sa ma ajutati.
Din pacate iese total din discutie modificarea Structurii Sheet-urilor datorita faptului ca ar TREBUI SA MODIFIC CATEVA ZECI DE FISIERE CU SUTEEEEE DE SHEET-uri. Tocmai am Incheiat procesul de uniformizare a tuturor acestor fisiere (1 an) !!!!!!!!!!
In toate aceste fisiere, Produsele au aceeasi adresa de celula, un fel de ,, referinta absoluta".
Mai devreme sau mai tarziu tot voi gasi solutia sau solutiile la problemele mele singur sau cu ajutor VOSTRU.
Am descarcat si listat de pe Microsoft Office Online toate cele 11 Tipuri de Functii cu cele 333 Functii (2 bibliorafturi).
M-am apucat de invatat si am inceput cu Functiile de Cautare si Referinta.
Un alt pas l-am facut prin achizitionarea de la editura Teora a unei carti VBA - Ghid pentru Incepatori.
Sper ca in cateva luni sa pot participa si eu la solutionarea problemelor altora (VBA).
O problema am rezolvat-o dupa ce am invatat functia ,,CONCATENATE"
Inca odata Va Multumesc si, mai vorbim.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de gecs » Sâm Dec 12, 2009 11:12 pm

Imi pare rau ca asta e situatia, dar sa stii ca uneori merita efortul sa gasesti o modalitate de a prelua datele in alt format pe care sa-l folosesti mai departe mai eficient.

Cele mai dificile situatii pentru gasirea formulelor adecvate se datoreaza unei organizari deficitare a datelor.

In fisierul atasat gasesti o rezolvare cu formule, dar si cu coloane ajutatoare pentru situatia din foaia "D.C." in range-ul L10:AA58. In celulele din L10:AA10 trebuie sa scrii numele foilor de calcul unde se face cautarea dupa valoarea inscrisa in $H$8. Formulele care urmeaza extrag datele din foile respective, iar pe coloana D se insumeaza, pe randuri, valorile din coloanele L:AA.

O rezolvare asemanatoare e posibila si cu o procedura VBA, fara coloanele de cifre din L11:AA58, cu inscrierea valorilor direct in celulele de pe coloana D, dar tot cu inscrierea undeva, in foaia "D.C.", a numelor foilor de calcul unde trebuie cutate valorile din H8, dar ii las lui Lucian placerea sa scrie codul asta in evenimentul "Worksheet_Change" al foii respective :)

Daca datele ar fi fost organizate ca in exemplul pe care l-am postat mai devreme era nevoie de o singura formula de copiat de sus pana jos in range-ul D10:D58 (un SUMPRODUCT() cu trei coloane cu conditii si o coloana de insumat). O alta varianta ar fi fost ca tabelul din foaia "D.C." sa fie un PivotTable cu filtre pentru curse, date si magazine si fara sa fie nevoie de alte formule (asa cum si preconizam in comentariul meu anterior).
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

IPP
Moderator
Moderator
Mesaje: 4196
Membru din: Mie Iul 29, 2009 7:26 am
Localitate: Cluj-Napoca

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de IPP » Sâm Dec 12, 2009 11:34 pm

Buna seara

As spune ca stiu cat e de greu sa impaci "si capra si varza", in cazul de fata ceva cu aspect de formular – document tiparit (si menit a fi completa si cu “pixul” la o adica si o structura de date care sa permita o centralizare ulterioara rapida a informatiilor dorite.

De aceea si eu consider ca ar fi mult mai bine o rearanjare a datelor in sensul in care sa existe un formular astfel gandit incat, dupa completare si cu ajutorul VBA, informatia dorita sa fie in acelasi timp tiparita la imprimanta, salvata ca pagina separata (in ideea ca va mai trebui retiparita vreodata sau cu rol de backup) si, mai ales trimisa spre o foaie centralizatoare din care sa puteti extrage usor toate datele dorite.

In timp ce incercam sa formulez mai multe argumente in favoarea celor afirmate mai sus, a aparut mesajul dvs. cum ca nu veti reorganiza datele. Asa ca ma limitez a atasa fisierul dvs. in care am facut niste modificari care ar putea fi folositoarea, macar ca punct de plecare sau idee:

1. Un macro care determina in foaia Clienti sortarea (intregii coloane A si B) dupa ce ati introdus o informatie in coloana B. Observatie: Se pare ca merge destul de bine si pentru situatia in care stergeti ceva client (mai putin acela care se afla in celula B2. Sincer nu stiu de ce pentru ca partea de VBA nu e punctul meu forte chiar daca am cartea pomenita de dvs. :lol: ). Alte precizari: In conditiile date, coloana cu numarul curent mi se pare inutila atat timp cat acel numar ar trebui sa se schimbe in functie de sortarea survenita la introducerea unui client nou. Ati spus ca exista o regula de genul A, A Mostre, A Schimb. In acest caz e suficient sa vedeti ultimul rand completat, sa scadeti 1 (=randul cu capul de table in exemplul atasat) si sa impartiti la 3 si aflati numarul de clienti (sau ce or fi) unici.
Pentru ca exista o rutina de genul nume, nume mostre, nume schimb in locul dvs. as inlocui solutia de mai sus cu o solutie in care dupa ce ati introdus un nume sa rulati un macro care sa completeze automat celelalte doua inregistrari si sa faca sortarea castigand astfel timp.

2. Am adaugat o foaie numita Altele si una Info in care am pus cateva alternative la solutiile folosite de dvs in completarea unor informatii / formule

Ca sfat general: evitati pe cat posibil contopirile de celule.

IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

DAN
Mesaje: 76
Membru din: Lun Oct 19, 2009 7:47 pm

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de DAN » Mar Dec 15, 2009 2:00 am

Salutare,
UAUUU.... Nu stiu CU CE SA INCEP.
Gecs, eu sunt o persoana foarte deschisa la orice propunere. Spun acest lucru pentru ca lucrez in vanzari, un domeniu foarte dinamic, cu o multitudine de tehnici de vanzare si variabile (care tin de natura produsului sau produselor pe care le produci si vinzi). Cine nu este receptiv la semnalele din piata, flexibil, inovator (sub toate aspectele), .... mai ales in condiitiile economice actuale este MANCAT.
Cea mai mare problema a mea este faptul ca timpul meu liber este foarte redus din cauza job-ului.
Job-ul meu este de a conduce echipa de vanzari astfel incat chiar daca situatia economica este asa cum "este" sa pastram vanzarea si de ce nu sa o crestem.
La un moment i-am expus sefului meu o idee de aplicatie de care a fost incantat. Dupa 2 saptamani m-a intrebat in ce stadiu sunt? I-am raspuns prin precizarea stadiului, a problemelor intampinate ......
Dupa alte 2 m-a intrebat IAR in ce stadiu sunt?
Raspunsul meu a fost urmatorul: Ce cifra (ca valoare) este mai convenabil sa introduci intr-o celula din cadrul unui tabel care face parte dintr-o aplicatie de analiza a vanzarilor? Cu alte cuvinte, ce este mai convenabil sa analizezi ? vanzarea a 5 litri de Lapte sau a 100 litri de Lapte.
NU POT SA IAU DIN TIMPUL Job-ului. EXCEL-ul este un hobby al meu.
Lucrul cu Excel-ul conduce la urmatoarea situatie:
1. La un momen dat fiecare individ creeaza un tabel, o aplicatie ...... cu acele cunostinte care le detine in acel moment si cu ajutorul neuronilor sai.
2. Lucrand in Excel zi de zi, corelat si cu documentare, in fiecare zi inveti cate ceva.
3. Aici intervine PROBLEMA MEA si sunt sigur ca a tuturor celor care lucreeaza in Excel. Descoperi ca toate acele aplicatii care le-ai creeat acum 9,8,7,6,5,4 luni pot fi mult imbunatatite, stii cum, dar NU AI TIMPUL NECESAR sau acele cunostinte care sa iti permita realizarea modificarilor printr-un mod mai facil.
4. Cu cat sunt mai mari aplicatiile (multe sheet-uri de ordinul zecilor, zeci de mii de formule) cu atat este mai dificil sa le modifici. Am realizat o aplicatie ,, M.G.M. - Monitorizare Gestiune Depozit Marfuri " care are dimensiunea de 18.350 KB. Poate pentru unii este mare (pentru mine este cea mai mare prin cele aproximativ 170 de sheet-uri si peste 200.000 de formule), pentru altii mica, dar ea a fost realizata NUMAI cu functia ,,IF", ,,SUM" si anumita organizare a datelor (tabele). Contabilitatea lucreaza dupa acesta aplicatie !!!!
La TOATE aplicatiile create de mine STIU ce sa le fac ca sa fie mai performante, dar cu acel nivel de cunostinte problema tine de timp si nu de dificultatea operatiunilor de modificare.
In ultimele 2 luni m-am indreptat spre documentare (carti, DrExcel, Microsoft Office Online), spre explorarea cat mai multor tipuri de functii.
Cu cat invat mai mult cu atat obtin mai repede solutii la problemele mele, descopar alte solutii mai simple si mai eficiente (ca timp de lucru versus rezultate) pentru punerea ideilor in practica. Din acest motiv am stopat activitatea de modificare a aplicatiilor.
Sper ca nu am plictisit, dar am simtit nevoia sa scriu aceste lucruri.
Aplicatia ,,Comenzi Zilnice" am transformat-o intr-un fel ,,cobai'" din 2 MOTIVE:
1. Prin aceasta aplicatie, dupa calculele mele, operatorul care preia comenzile va termina acesta treaba mai repede cam cu 1 ora maxim 2 ore. Am nevoi de aceasta economie de timp (NU va pleca mai repede acasa) pentru a umple un gol in circuitul informational care l-am pus la punct (veriga lipsa).
2. In aceasta aplicatie se afla problema mea cea mai MARE (in acest moment): cautarea unei valori in 10 sau 50 sau n sheet-uri si returnarea unei valori intr-un alt sheet. Aceasta problema, putin diferita o am si in aplicatia M.G.M. - Monitorizare Gestiune Depozit Marfuri ". Diferita in sensul ca trebuie sa caut 50 de soferi in 31 de sheet-uri corespunzatoare celor 31 de zile ale unei luni calendaristice. Fiecare sofer are o fisa in care este evidentiat zilnic numarul de paleti cu care acesta pleaca in cursa si numarul de paleti care ai preda la intoarcere din cursa. La fel ca in aplicatia ,,Comenzi Zilnice" in capul de coloana avem numele soferului, iar sub el numai doua randuri.
Gecs, dupa ce am studiat fisierul, pot spune ca mi-ai dat solutia la problema mea !!!!
Ok. Nu caut perfectiunea. Sunt sigur ca mai sunt multe alte solutii mai simple sau mai complexe, dar atata timp cat SOLUTIA TA IMI RETURNEAZA VALORILE DORITE pentru mine este SUPER OK !!!!!!!!!!!
Am studiat formula de cautare si mi-am ,,prins urechile", pentru ca nu cunosc acele functii, deci Nu am cum sa inteleg, DAR IN CEL MAI SCURT TIMP MA VOI OCUPA DE INSUSIREA CUNOSTINTELOR LEGATE DE ACESTE FUNCTII (sigur vor mai fi si intrebari) !
Pornind de la sugestia ta: ,,In celulele din L10:AA10 trebuie sa scrii numele foilor de calcul unde se face cautarea dupa valoarea inscrisa in $H$8." am creeat 2 NOI sheet-uri: Diverse AZI si ,,X (2) " prin copierea sheet-ului ,,X".
La redenumirea copieie fisierului ,,X", noua denumire Diverse Azi are o extensie care nu am mai intalnit-o pana acum, deci nu mi-o explic.
In celula O10 am introdus numele sheet-ului ,,X (2) ". Returneaza eroare
In celula P10 am introdus numele sheet-ului ,,Diverse Azi ". Returneaza eroare
Am observat ca ,,In celulele din L10:AA10" ai creeat posibilitate introducerii a 16 sheet-uri.
Daca doresc sa creez al 17 sheet, este corecta operatia de ,,tragere" a formulei de la celula AA la celula AB? Apare fereastra care imi atrage atentia asupra existentei unei erori.

IPP, iti multumesc ca te-ai alaturat si tu celor care doresc sa ma ajute.
FOARTE UTILE lucrurile asupra carora mi-ai atras atentia.
Exemplu cu ,,dynamic range numit Gestionari" executat cu o procedura VBA nu face altceva decat sa-mi intareasca convingerea ca la problemele mele exista o multime de solutii simple, dar trebuie sa inveti.
LA capitolul VBA sunt ZERO.
Acesta situatie o voi corecta in cel mai scurt timp posibil.
Am sa iti explic de ce sunt incantat de cartea VBA - Ghid pentru Incepatori.
Am cumparat 4 carti care trateaza subiectul Excel:
I. Lectii de Excel; Editura Albastra ; Subiect VBA = NETRATAT
II. Asistarea Deciziei folosind Mediul Excel; Editura Albastra ; Subiect VBA = NETRATAT
III. Invata singur Excel 2003; Editura Niculescu ; Subiect VBA = 13 PAGINI = O trecere in revista foarte, foarte succinta
IV. VBA - Ghid pentru Incepatori; Editura Teora ; Subiect VBA = 385 PAGINI.
De la 13 pagini la 385 pagini este o mare diferenta.
Daca facem un calcul simplu VBA - Ghid pentru Incepatori ofera de 30 de ori mai multa informatie structurata special pentru a fi accesibila INCEPATORILOR.
Pentru mine reprezinta ABC- darul de care am nevoie pentru a face primii pasi corecti in acesta lume Noua a programarii.
Sunt dispus sa achizitionez orice carte care trateaza subiectul VBA. ASTEPT RECOMANDARI !!!!!
Nici nu va imaginati cat de mult ma bucur ca EXISTATI !, CA AM CU CINE SA VORBESC !, pentru ca 99 % din cei pe care i-am abordat pe teme de Excel, pentru ei, acesta se reduce la 1 tabel cu un anumit numar de coloane si randuri in care se pot efectua calcule simple.
Cand aduceam in discutie subiectul functii logice, de cautare si referinta, statistice, imbricate SAU VBA se uitau la mine parca vorbeam de OZN - uri.
Vorbim !!!
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.

Avatar utilizator
gecs
Moderator
Moderator
Mesaje: 2311
Membru din: Sâm Aug 15, 2009 10:05 am
Localitate: Bucuresti

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de gecs » Mar Dec 15, 2009 12:52 pm

Inainte de orice indraznesc sa-ti dau un sfat: pe langa invatarea de formule si VBA incearca sa acorzi si ceva timp pentru a intelege cum sa-ti organizezi mai bine datele.

Cum bine spuneai si tu, majoritatea utilizatorilor de Excel de nivel mediu se limiteaza la un tabel cu niste calcule bazate pe formule simple fie pentru ca doar de atat au nevoie, fie pentru ca nu stiu ca se pot face mult mai multe prelucrari folositoare ale datelor.

Exista mai multe tipuri de aplicatii pentru care se foloseste Excel-ul, dar pentru toate regula de baza e sa faci mai intai o analiza simpla a aplicatiei pe care vrei s-o construiesti plecand de la doua intebari:
- de unde plec (ce date am la dispozitie)?
- unde vreau sa ajung (care vor fi prelucrarile finale ale acestor date)?

Intre raspunsurile la aceste doua intrebari sta solutia aplicatiei tale, inclusiv modul de organizare a datelor de care ai nevoie. Daca nu ai nevoie de masive mari de date de prelucrat pentru a-ti atinge scopul final, partea mai delicata a aplicatiei respective rezida in gasirea formulelor necesare unor calcule mai sofisticate (poate), dar daca apliacatia ta se bazeaza in buna masura doar pe prelucrarea unor volume de informatii mai mari, e musai sa te gandesti cum sa-ti organizezi acele date - care sunt sculele pe care le ai la dispozitie pentru aduce acele date in formele de care ai nevoie pentru prelucrarile pe care le doresti. Mai e un lucru important de semnalat aici, dupa parerea mea: multi utilizatori neexperimentati sunt tentati sa transforme baza de date in raport de tiparit. In cazul prelucrarii unor volume de date mai importante acest aspect trebuie transat clar, de la inceput: datele sunt date, iar formele de tiparit sunt extrasele necesare din acele date.

Analiza despre care vorbeam mai sus se continua parcurgand drumul de la punctul de pornire la cel de sosire in sens invers: se imagineaza formele sub care trebuie prezentate datele in final, iar apoi care e pasul anterior necesar de facut pentru a aduce datele in forma respectiva - si tot asa pana ajung la punctul de pornire cand ar tebui sa am clarificat modul in care e bine sa-mi organizez datele. Dupa cum ai sesizat si tu, datele de prelucrat de obicei au si ele o structura - in cazul tau structura e determinata fizic pe "curse" si de aceea ai optat pentru solutia cursa/foaie de calcul. Daca analizezi putin primul fisier pe care l-am postat la acest subiect vei vedea ca in loc de o foaie de calcul pentru fiecare cursa exista un tabel care tine aceasta evidenta (in foia "Comenzi" - un achivalent al acestei denumiri ar putea fi "Curse"), iar datele de detaliu pentru toate cursele sunt toate intr-o singura foaie ("Detalii_Comenzi"). In afara de usurinta de a prelucra datele intr-o astfel de organizare mai apare si avantajul ca anumite informatii sunt de inregistrat la nivelul "cursei", adica al unui "pachet de date" din foaia "Detalii_Comenzi", fara a mai fi nevoie sa fie repetate in fiecare inregistrare din foaia "Detalii_Comenzi". Folosind tabele (sau doar filtre) pe baza de date din foaia "Detalii_Comenzi" poti vizualiza in orice moment detaliile in legatura cu o anumita cursa, o anumita firma, un anume produs etc. - asta insa numai ca vizualizare. Prelucrarea acestor date este insa usor de realizat pentru ca intotdeuna se cauta in acelasi loc. Ar mai fi multe de spus pe tema asta, dar poate lamurim si alte aspecte din discutiile ce vor urma.

Revenind la formula despre care spuneai ca da eroare, e in primul rand vina mea ca n-am luat in calcul faptul ca denumirile foilor pot contine si spatii - de aici rezulta eroarea.
In esenta formula returneaza o valoare pe care trebuie sa stie unde s-o caute si cum sa o afiseze in functie de rezultatul cautarii.

Corectata, formula arata asa:

Cod: Selectaţi tot

=IF(LEN(L$10)=0,"",IF(ISNA(MATCH($H$8,INDIRECT("'"&L$10&"'!$D$1:$P$1"),0)),"",INDEX(INDIRECT("'"&L$10&"'!$D$3:$P$50"),MATCH($A11,INDIRECT("'"&L$10&"'!$A$3:$A$50"),0),MATCH($H$8,INDIRECT("'"&L$10&"'!$D$1:$P$1"),0))))
Sunt folosite 6 functii mari si late: IF(), LEN(), ISNA(), INDEX(), MATCH() si INDIRECT(). Testul din primul IF() este legat de existenta unei valori inscrise pe aceeasi coloana in randul 10 - acolo unde trebuie scrise numele foilor de calcul unde trebuie cautata valoarea - daca pe aceeasi coloana, in randul 10 nu e nimic scris, formula returneaza sirul vid (""). LEN() returneaza numarul de caractere dintr-un sir de caractere (se poate folosi si cu numere ca argument si va returna numarul de cifre din numarul respectiv, eventual +1, daca e un numar zecmal - conversia din numeric in sir de caractere se face automat). ISNA() e o functie care returneaza TRUE sua FALSE in functie de evaluarea expresiei furnizata ca argument. Cand o functie de cautare nu gaseste elementul de cautat aceasta returneaza eroarea #N/A - ISNA() semnaleaza prezenta acestei erori returnand TRUE. In al doilea IF se testeaza existenta valorii din celula $H$8 intr-un anume range ($D$1:$P$1) din foaia al carui nume e inscris pe coloana respectiva in randul 10. Daca acea valoare nu e gasita, expresia MATCH($H$8,INDIRECT("'"&L$10&"'!$D$1:$P$1"),0) va returna eroarea #N/A, iar ISNA() va returna TRUE, drept care formula va returna din nou sirul vid (""). Pentru descrierea functiilor INDEX() si MATCH() poti sa vezi si articolul asta. Mai ramane de explicat INDIRECT(), care e o functie de adresare returnand referinta la un range scris intre parantezele functiei ca un sir de caractere. =INDIRECT("A1") e echivalent cu =A1. INDIRECT() e folosit aici pentru a compune referinta prin concatenarea unor siruri de caractere pentru care se foloseste operatorul &. & poate fi folosit in loc de CONCATENATE(). Pentru ca in cazul foilor de calcul cu nume care contin spatii acest nume trebuie pus intre ghilimele, sau apostrofuri, argumentul lui INDIRECT() e construit folosind si apostroful ca sir de caractere - portiunea "'" reprezinta, desi nu se vede bine pe ecran, un apostrof intre doua ghilimele, iar portiunea care incepe cu "'!... e de fapt: " ' ! (scris fara spatii intre semne).

Daca ai nevoie de referinte la mai multe foi de calcul in "pachetul" ala de formule, poti extinde "pachetul" prin copierea formulelor. Daca vrei sa faci referinta la o foaie de calcul din alt fisier va trebui ca denumirea respectiva sa fie scrisa pe randul 10 incluzand denumirea fisierului (cu extensia .xls) intre paranteze drepte si daca vrei ca referinta sa fie gasita si cu fisierul respectiv inchis, va trebui sa fie prefixata si de calea unde se afla fisierul. De exemplu daca fisierul tau se numeste Dan.xls, se afla in folderul C:\Excel\DrExcel\ si vrei referinta la foaia X, pe randul 10, in coloana respectiva va trebui sa scrii:
C:\Excel\DrExcel\[Dan.xls]X
In orice caz nu va trebui sa folosesti paranteze drepte in denumirea unei foi de calcul!

DAN
Mesaje: 76
Membru din: Lun Oct 19, 2009 7:47 pm

Re: Gasire valoare prin cautare in mai multe sheet-uri ??????

Mesaj de DAN » Mie Dec 16, 2009 12:09 pm

Am sa modific formula.
MULTUMESC.
VORBIM.

Închis

Înapoi la “Intrebari despre Excel 2003”