aducere date de pe alt sheet dupa 1 conditie
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
aducere date de pe alt sheet dupa 1 conditie
In exemplul de mai jos in sheetul lista_angajati vreau sa aduc automat tariful corespunzator angajatului introdus in coloana A.Am o formula dar care nu este completa, nu stie sa tina cont care tarif este actual (asta e conditia).Il ia pe primul pe care il gaseste in istoric_tarif.Care a fi formula corecta care sa tina cont ca trebuie sa aduca tariful actual?
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: aducere date de pe alt sheet dupa 1 conditie
Buna ziua
O idee dar folosind functia vlookup. De regula, functia cauta intr-o lista in care, daca exista mai multi itemi identici, returneaza rezultatul din dreptul primei aparitii gasite. In aceast fel ar fi suficient sa sortati lista in care trebuie sa caute dupa 2 criterii: identificator angajat si stadiu. In urma sortarii (ascendente) stadiul "activ" va fi primul (evident daca pastrati denumirile de Activ si Suspendat in dreptul fiecarui identificator angajat).
IP
Vedeti si fisierul atasat unde am facut pasii enumerati mai sus
O idee dar folosind functia vlookup. De regula, functia cauta intr-o lista in care, daca exista mai multi itemi identici, returneaza rezultatul din dreptul primei aparitii gasite. In aceast fel ar fi suficient sa sortati lista in care trebuie sa caute dupa 2 criterii: identificator angajat si stadiu. In urma sortarii (ascendente) stadiul "activ" va fi primul (evident daca pastrati denumirile de Activ si Suspendat in dreptul fiecarui identificator angajat).
IP
Vedeti si fisierul atasat unde am facut pasii enumerati mai sus
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
Re: aducere date de pe alt sheet dupa 1 conditie
Buna ziua
.... sau folosind SUMPRODUCT?
Vedeti si fisierul atasat.
IP
.... sau folosind SUMPRODUCT?
Vedeti si fisierul atasat.
IP
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: aducere date de pe alt sheet dupa 1 conditie
Varianta cu sumproduct este mai buna caci nu mai este obligatoriu sa se faca sortare.
In aceeasi varianta in care sa nu necesite sortare prealabila, va propun o noua problema.Vedeti fisierul atasat.As vrea ca sa poata traga salariul pe primul sheet la fel ca si in cealalta problema doar ca acum sa faca luand tariful cu data de valabilitate cea mai recenta (ultima din punct de vedere calendaristic)
In aceeasi varianta in care sa nu necesite sortare prealabila, va propun o noua problema.Vedeti fisierul atasat.As vrea ca sa poata traga salariul pe primul sheet la fel ca si in cealalta problema doar ca acum sa faca luand tariful cu data de valabilitate cea mai recenta (ultima din punct de vedere calendaristic)
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: aducere date de pe alt sheet dupa 1 conditie
ma poate ajuta cineva cu ultima mea intrebare din acest topic?
Re: aducere date de pe alt sheet dupa 1 conditie
Se poate doar cu formula CSE pentru ca e o cautare dupa conditii multiple.
In fisierul atasat ai o solutie tot cu SUMPRODUCT ca functie de baza pe o coloana si cu INDEX+MATCH pe alta coloana, dar daca ai doua inregistrari pentru aceeasi persoana cu acelasi an si aceeasi luna in tabelul din foaia "istoric_tarif" formula cu SUMPRODUCT o sa-ti returneze suma acelor tarife, iar cea cu INDEX+MATCH va returna prima valoare gasita care respecta conditiile - conditia ca solutia sa functioneze corect e sa nu ai asemenea duplicate, eventual sa le rezolvi adaugand si o coloana pentru zi si acolo datele sa fie diferite (de fapt e nevoie de o singura coloana pentru datele calendaristice, coloana pe care am adaugat-o in tabel).
In fisierul atasat ai o solutie tot cu SUMPRODUCT ca functie de baza pe o coloana si cu INDEX+MATCH pe alta coloana, dar daca ai doua inregistrari pentru aceeasi persoana cu acelasi an si aceeasi luna in tabelul din foaia "istoric_tarif" formula cu SUMPRODUCT o sa-ti returneze suma acelor tarife, iar cea cu INDEX+MATCH va returna prima valoare gasita care respecta conditiile - conditia ca solutia sa functioneze corect e sa nu ai asemenea duplicate, eventual sa le rezolvi adaugand si o coloana pentru zi si acolo datele sa fie diferite (de fapt e nevoie de o singura coloana pentru datele calendaristice, coloana pe care am adaugat-o in tabel).
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: aducere date de pe alt sheet dupa 1 conditie
Clar ca formula cu sumproduct in acest caz nu este buna, ca face altceva decat ar trebui.Dar nici cealalta formula nu functioneaza corect deoarece daca am in istoric la aceeasi angajat pe aceeasi an si luna doua tarife singura diferenta fiind A sau L (incepand cu avans adica pana in 15 data calendaristica sau lichidare dupa 15) el nu mai stie sa tina cont de aceasta conditie si pur si simplu ia primul gasit.Cum se poate rezolva si asta?Poti sa imi dai o formula care sa ia luna, anul si AsauL pur si simplu ca niste conditii oarecare, valabila ptr orice alta conditie (fiind trei conditii in total), decat ca special data calendaristica?
Re: aducere date de pe alt sheet dupa 1 conditie
Cea mai buna diferentiere e pe data calendaristica integrala (an, luna, zi). Se poate forma coloana suplimentara interpretand A sau L: pentru A se ia ziua 15, iar pentru L se ia ziua 28 (ca sa existe in toate lunile anului) si atunci nu mai e nicio ambiguitate (si formula cu SUMPRODUCT ar functiona corect pentru ca ar fi o singura inregistrare care indeplineste toate conditiile - de fapt e o singura conditie, nu 3: cea mai recenta inregistrare pentru o anume persoana). Daca apar doua inregistrari pentru aceeasi persoana cu aceeasi data completa (an, luna, zi), dar cu valori diferite de tarif situatia asta nu poate fi interpretata altfel decat ca o greseala si in consecinta si rezultatele returnate de formule vor fi gresite - principiul Garbage In - Garbage Out
In fisierul atasat de mine anterior nu ai de facut altceva decat sa modifici formula de pe coloana "Data" in:
=DATE($B2,$C2,IF($D2="A",15,28))
pentru F2, copiata apoi in jos, pe coloana. Ambele formule din foaia "lista_angajati" vor functiona, dar ca si tine, si eu as alege formula bazata pe INDEX + MATCH.
In fisierul atasat de mine anterior nu ai de facut altceva decat sa modifici formula de pe coloana "Data" in:
=DATE($B2,$C2,IF($D2="A",15,28))
pentru F2, copiata apoi in jos, pe coloana. Ambele formule din foaia "lista_angajati" vor functiona, dar ca si tine, si eu as alege formula bazata pe INDEX + MATCH.
-
- Mesaje: 104
- Membru din: Lun Mai 25, 2009 8:29 pm
Re: aducere date de pe alt sheet dupa 1 conditie
Functioneaza intr-adevar.Multumesc.Cred ca o sa mai revin totusi la acest topic in curand ptr ca mai am o situatie asemanatoare, putin diferita.
-
- Mesaje: 1
- Membru din: Sâm Oct 29, 2011 9:44 am
Re: aducere date de pe alt sheet dupa 1 conditie
Salut, am si eu o intrebare legata de acest subiect, dar nu prea am folosit macro-uri pana acum.
Am o baza de date cu niste informatii despre niste comenzi.
In cazul unei comenzi nu toate celulele sunt completate.
Cand toate celulele vor fi completate, la capatul tabelului am o celula "A fost facuta comanda?", si am facut cu data validation un drop down menu pentru acea celula, cu "Da" si "Nu" ca optiuni de selectare.
In cazul in care selectez "da", as vrea sa imi mute tot randul cu comanda respectiva in alt spreadsheet, ca in primul spreadsheet ("Inregistrare") sa ramana doar comenzile care inca nu sunt complete inca, iar in celalalt spreadsheet ("Comenzi facute") sa fie cele complete.
As vrea sa am si posibilitatea ca in cazul in care am dat "da" din greseala sa pot triminte randul inapoi in primul spreadsheet.
Am atasat un exemplu al tabelului.
Am o baza de date cu niste informatii despre niste comenzi.
In cazul unei comenzi nu toate celulele sunt completate.
Cand toate celulele vor fi completate, la capatul tabelului am o celula "A fost facuta comanda?", si am facut cu data validation un drop down menu pentru acea celula, cu "Da" si "Nu" ca optiuni de selectare.
In cazul in care selectez "da", as vrea sa imi mute tot randul cu comanda respectiva in alt spreadsheet, ca in primul spreadsheet ("Inregistrare") sa ramana doar comenzile care inca nu sunt complete inca, iar in celalalt spreadsheet ("Comenzi facute") sa fie cele complete.
As vrea sa am si posibilitatea ca in cazul in care am dat "da" din greseala sa pot triminte randul inapoi in primul spreadsheet.
Am atasat un exemplu al tabelului.
Nu aveţi permisiunea de a vizualiza fişierele ataşate acestui mesaj.