Operațiuni cu data și timpul în #Excel

Acest articol propune fanilor Excel, în special de nivel începător și mediu, diferite metode de rezolvare a problemelor Excel care implică diferențe între diferite date și ore. Dacă aveți și alte exemple, formule utile, sau probleme specifice, vă rog să folosiți secțiunea de comentarii. Fișierul cu exemplele de mai jos poate fi descărcat de aici: https://1drv.ms/x/s!ApGubfWFh8NurMYAwT-aM2MyatxMjw?e=Z0xA42

 

Câteva noțiuni introductive

Data în Excel este un număr care reprezintă numărul de zile trecute de la prima dată care se poate înregistra: 01.01.1900. Această dată este echivalentul numărului întreg 1.

Ora în Excel este un număr zecimal cuprins între 0,000001 și 0,999999. Cu cât folosim mai multe zecimale, cu atât timpul este mai precis. 6 zecimale sunt suficiente în opinia mea pentru a reprezenta cât mai exact timpul.

Pentru a transforma o dată într-o valoare, putem pur și simplu să schimbăm formatul celulei din Dată în Număr și se va afișa echivalentul numeric al datei. O alternativă este utilizarea funcției VALUE(celula cu data) și va rezulta un număr întreg.

Pentru a prelua data din sistem folosim funcția TODAY() iar pentru a prelua data și ora folosim funcția NOW()

Dacă dintr-o celulă care are înregistrată data și ora dorim să extragem doar data atunci vom folosi funcția INT(celula cu data) care va returna un număr întreg pe care îl putem formata ca Short Date. Dacă dorim să extragem doar timpul, atunci vom scădea din celula cu data și ora, întregul acelei celule, rezultând astfel doar partea zecimală, pe care o formatăm ca Time.

O observație de detaliu: Numărul maxim de afișare a zecimalelor în Excel este de 15, în cazul în care partea întreagă este 0. Dacă numărul din partea întreagă este mai mare ca 0 numărul de zecimale scade la 14.

În imagine, formule și reprezentări noțiuni introductive.

În cazul în care timpul este în format text, ca rezultat al unei extrageri sau import, obținerea valorii timpului se realizează cu funcția TIMEVALUE().

 

Diferența între două date calendaristice

Scăderea a două date calendaristice presupune obținerea unui număr întreg cu diferite semnificații prezentate în coloana de observații.

 

Funcția NETWORKDAYS(), implică definirea unui tabel separat cu zile festive. Aceste date vor fi scăzute din rezultatul final, dacă sunt regăsite în intervalul de date pentru care se calculează diferența.

Operațiuni de adunare

Operațiunea de adunare a două date, va returna un număr întreg fără nici o semnificație concretă.


Ca aplicabilitate economică, linia 6 din imagine poate fi utilizată în calcularea termenului de scadență al unei facturi, iar pentru linia 9, putem să ne calculăm care este ultima zi de concediu de 7 zile cu pornire de la data de 17.09.2021, excluzând zilele de sărbătoare națională din tabelul cu zile festive.

În acest exemplu funcția WORKDAY() este cea care ne ajută să adăugăm un număr de zile lucrătoare la o data specificată.

Diferența dintre două ore

Diferența între două ore este o operațiune aritmetică simplă prin care scădem ora mai mare din ora mai mică. Exemplu în C2.

Problema apare în momentul în care dorim să scădem două ore aflate în zile diferite. După cum observăm în celula C4, numărul de ore între două ore din două zile diferite este afișat 4:10. Din punct de vedere numeric timpul respectiv ca diferență dintre cele două date este 1,17. Acest 1 presupune că între cele două ore au trecut 24 de ore. Ca să putem vedea răspunsul complet al numărului de ore, putem proceda la formatarea celulei cu timpul în formatul Time – total ore. Detalii în imagine.

În cazul în care avem activități care încep într-o zi lucrătoare și se finalizează în timpul de lucru al celei de-a doua zi lucrătoare formula devine mult mai complexă, pentru că trebuie să eliminăm timpul din afara orelor de program. Având în vedere că acest timp de începere și final este variabil, propun o formulă care să se raporteze la aceste ore.

Ca să ajung la formula din C14, afișată în E14, am folosit tehnica coloanelor ajutătoare:

  • C10: Am determinat diferența de zile lucrătoare între cele două date. Având în vedere că ambele sunt lucrătoare, dacă sunt consecutive sau consecutive peste weekend (vineri și luni) va rezulta valoarea 2.
  • C11: Numărul de ore lucrate în prima zi ca diferență între ora de final a programului B20 și partea zecimală a valorii din prima zi. Funcția INT() ne permite scoaterea valorii întregi, iar prin diferență obținem partea zecimală, aferentă timpului.
  • C12: Numărul de ore lucrate a doua zi ca diferență din ora din a doua zi minus ora de start a programului din A9.

Această formulă este funcțională atât pentru zile consecutive cât și pentru activități începute vineri și finalizate după weekend.

Dacă o activitate începe într-o zi și se termină peste două zile, formula trebuie îmbunătățită cu adăugarea numărului de zile lucrătoare înmulțit cu numărul de ore lucrătoare dintr-o zi. În cazul meu am specificat 8 ore lucrătoare pe o zi.

Cam atât pentru moment. Dacă aveți alte metode de rezolvare și doriți să le partajați cu noi puteți să le treceți în secțiunea comentarii.

 

Fișierul cu toate formulele și exemplele poate fi descărcat de la această adresă: https://1drv.ms/x/s!ApGubfWFh8NurMYAwT-aM2MyatxMjw?e=Z0xA42

 

Sper să fie util cuiva.

Trafic de coșmar – O opinie personală

Presa acestor zile, oficială sau socială este plină de mesaje revoltătoare la traficul din Iași, în special ruta CUG-Podu Roșu. În calitate de participant la acest trafic de coșmar rezonez oarecum cu aceste mesaje, dar încerc în acest articol o opinie diferită. Dacă sunteți sau nu de acord cu aceste opinii, sau doriți să le completați, utilizați vă rog secțiunea comentarii a acestui articol.

Răspunsul cel mai simplu și ușor la toată nebunia din trafic este să înjurăm Primarul, Poliția și pe toți ceilalți participanți. De la a ne înjura în fizic și în mediile sociale, ajungem repede să ne detestăm unii pe alții și să ne comportăm și mai agresiv în trafic unii față de ceilalți.

Una din opiniile sarcastice, care a mai circulat prin social media este: Dacă nu îți place traficul din Iași poți să te muți într-un alt oraș din jur.

Care ar fi principalele cauze ale acestui trafic? Câteva răspunsuri la această întrebare:

  1. A început școala în format fizic. Asta ar trebui să fie bine. Venim după o perioadă lungă de timp în care am acuzat/blamat școala on-line. Ne ducem copiii la școală cu speranța că vor învăța mai bine acolo decât din spatele monitoarelor. Îi ducem acolo cu speranța că pandemia s-a sfârșit și nu vom mai fi obligați să-i ținem acasă. Faptul că trebuie să traversăm orașul pentru a-i duce la o altă școală decât cea de cartier se datorează într-o anumită măsură vinei noastre. Da, toți căutăm o școală mai bună pentru copilul nostru (inclusiv familia mea), găsim „portițe” în lege, ne facem vize de flotant și ducem copiii la altă școală. Faptul că ne uităm urât la cel de lângă noi în trafic, cred că este o mică ipocrizie a fiecăruia dintre noi.

    În alte cazuri (și al meu), în locurile în care ne-am mutat NU există școli sau grădinițe care să aibă capacitatea de a înscrie un număr mare de copii. De ce? Pentru că în majoritatea zonelor metropolitane s-a construit haotic fără nici o strategie. Ai un petec de pământ, ai construit o casă după care aștepți să îți facă Primăria canalizare, asfalt, școli și grădinițe. Da, nu ne permitem toți să ne cumpărăm case în Copou, dar cred că serviciile și educația nu vor ajunge poate niciodată în anumite cartiere din jurul orașului. Ne-am asumat să ne mutăm la casă, e bine, dar nu este nimeni vinovat că am închis ochii la faptul că am primit autorizație într-o zonă nesistematizată.

     

  2. Suntem mulți! Acesta ar fi un alt răspuns. Da, în ultima perioadă foarte mulți oameni s-au mutat din județele din jur, și chiar din Republica Moldova în Iași și în împrejurimi. La fel ca și mine aș spune, chiar dacă am ajuns în Iași în 1990. Dezvoltarea industriei IT și a serviciilor, dezvoltarea sectorului de construcții dar și a platformelor industriale din jurul orașului a atras oameni din diferite localități spre un trai mai bun, școli mai bune, servicii medicale mai bune. Ar fi putut probabil să plece în Vest. Dar au preferat să stea la o distanță mai mică, alături de familie și prieteni. Aparent, în loc să trăim mai bine, ne înjurăm în trafic unii pe alții… Și da, dezvoltarea economică ne-a permis să ne achiziționăm automobile, să le punem carburant și să le întreținem.
  3. Benzile unice de autobuz. Văd că mulți oameni înjură benzile unice dedicate transportului în comun. Din observațiile mele de trafic de dimineață, zona Prima stație – Podu Roșu, circulația se desfășoară foarte fluid. Marile probleme pe ruta CUG-Podu Roșu, încep de la Biserica Albă, se acutizează la Selgros (Rond Vechi) și la Biserica Catolică. Dincolo de prima stație se merge, chiar dacă doar în zona respectivă sunt benzile unice. Dezvolt în continuare acest subiect.

Unde sunt punctele nevralgice în trafic și ce am putea face?

După cum scriam mai sus cred că punctele cele mai sensibile sunt la intersecțiile cu străzile adiacente bulevardului Nicolina. Pentru cei care nu știu, orașul se întinde pe o distanță de peste 7-8 Km de la intrarea din CUG. Și toți vin pe o singură bandă de acolo. Au fost discuții să se facă 2 benzi pe sens, dar nu cunosc stadiul proiectului. Cred că cele 2 benzi i-ar ajuta mai mult la venit acasă din oraș decât în sens invers. Din zonele respective, transportul public este complet subdimensionat sau greu abordabil. De exemplu, de la mine de acasă până la prima stație sunt 1300 m. Aș putea merge cu mașina până acolo și de acolo să iau un mijloc de transport. Doar că ele vin pline de la „capăt”. Vin rar. Și nici nu am unde să parchez mașina pentru a lua mijlocul de transport. Dacă aș dori să merg cu trenul… metropolitan, să spunem, prima gară este la 4 km de locul în care locuiesc. Ceea ce înseamnă un pic mai puțin decât distanța cu Podul Roșu.

O primă soluție aici: Amenajarea unei parcări mari pentru intrarea în oraș și introducerea unui număr mai mare de mijloace de transport. Capăt CUG este o zonă în care ajung tramvaiele și ar putea fi utilizată de mulți din cei care vin din împrejurimi, dacă ar avea unde să își lase mașinile. Aici, am putea să blamăm Primăria… pentru că orice petec de pământ din acea zonă este alocat pentru construcția de blocuri… iar dacă ar fi ceva locuri de parcare, ele sunt ocupate de cozi imense de tiruri care așteaptă intrarea la Vamă.

Din observațiile mele mijloacele de transport merg la fel de greu ca ceilalți participanți. De ce? Cozile de mașini se întind de la intrarea în capăt CUG. Mașinile merg pe linia de tramvai si pe banda de lângă. O a treia bandă este tot timpul blocată de mașini parcate. Se pare că Primăria nu și-a asumat să facă benzile dedicate până la capăt. Aici pot fi multe discuții. Opinia mea este că dacă vrei să încurajezi transportul în comun mergi până la capăt. Și așa te înjură lumea. Dar măcar cineva să ajungă la timp la școală. Bucățica de bandă dedicată nu ajută cu mare lucru. Ca să scoți mașinile parcate de pe bulevard trebuie să răspunzi oamenilor în legătură cu locurile de parcare rezidențiale. Ne place sau nu, blocurile, străzile și parcările au fost construite pentru un număr cred de 10 ori mai mic de mașini. Mă pun în pielea decidenților: habar nu am ce aș putea face ca să fac mai multe locuri de parcare. Sigur, aș încerca să mă inspir din experiența celor din vest. Presupun că nici acolo nu a fost simplu la început, dar actualmente poveste este cam așa acolo. Dorești să îți cumperi o mașină. Te duci la Primărie să o înregistrezi. Aceștia te felicită pentru noua achiziție după care te întreabă: aveți loc de parcare rezidențial? Nu? Ne pare rău: o duceți la capătul orașului în parcarea dedicată până vă faceți rost de loc de parcare rezidențială.

La noi? Îmi cumpăr mașină mie, îi cumpăr și soției, apoi venim ambii acasă cu mașinile de serviciu și apoi ne înjurăm cu vecinii că nu avem unde parca. Pe termen scurt nu este nici o soluție pentru asta. Nu poți lua pur si simplu mașinile de pe bulevard…. Dar dacă ai face undeva la marginea orașului o parcare imensă, cu niște camere de luat vederi, pază permanentă de la Poliția locală… Ai avea cum să le oferi oamenilor o alternativă. Fără eliberarea celei de a treia benzi, realizarea de bandă unică pentru mijloacele de transport care să fie și funcțională este greu realizabilă.

Revenind la punctele sensibile. Primul identificat de mine este la Selgros. Acolo se face primul ambuteiaj. Când se face verde, pentru lăturalnice, intră atât cei de pe Aleea Tudor Neculai, cât și cei dinspre Selgros. Uneori vin și tiruri care vor să facă stânga și atunci se blochează totul. Cei care merg înainte pe bulevard nu au înainta când se face verde din cauza blocajului din intersecție. De obicei acolo nu este nici un polițist care să dirijeze ceva. O soluție rapidă ar fi să se interzică traficul greu între orele de vârf. A doua, ar fi amplasarea unui polițist instruit care să supravegheze blocarea intersecției.

A doua problemă mare este la Bellvedere – Biserica Catolică. Acolo se intersectează toată Nicolina cu Miroslava și cei care vin de pe malul Nicolinei dinspre OMV. Într-una din dimineți, era verde la semafor dar nu puteam înainta. Am așteptat după trecerea de pietoni și au trecut câteva mașini dinspre Miroslava și câteva dinspre OMV. S-a făcut verde. Intersecția era blocată și nu am mai putut înainta. Am mai stat un verde apoi am încercat să vorbesc cu polițistul de la Locală și să îi explic că de două verzi NU s-a mișcat nici o mașină dinspre CUG. Nu a înțeles. După ce am trecut de acea zonă, la prima stație semaforul pe roșu. Un polițist de la Rutieră dirija traficul. Când a văzut că era liberă intersecția, ne-a trimis înainte.

Posibile soluții rapide: Amplasarea de polițiști instruiți și cu viziune în intersecțiile mari. Sau măcar instruirea corectă a celor de la Locală. Am impresia că ei nu înțeleg ce se întâmplă. Tot respectul pentru cei de la Rutieră și modul profesionist de deblocare a traficului. Cei care vin dinspre OMV să aibă posibilitatea în intervalul 6-8 să facă stânga cu acordare de prioritate mijloacelor de transport și celorlalți participanți la trafic.

În imagine fotografia din una din dimineți în stația din Podu Roșu. Mulți oameni în stație așteptând mijloacele de transport. Tot în imagine se vede o mare problemă pe care o facem cu toții tuturor. Nivelul de consum al carburantului. Mașina este proiectată pentru consum de 7,5% în regim mixt. La viteză medie de 30% consum de obicei 8%. În condiții de 8km/h… porniri și opriri repetate… consumul devine descurajator.

Legat de intersecția din Podu Roșu acolo am realizat cât de mult pot încurca traficul semafoarele prost configurate. Acolo sunt două semafoare: unul în stația de tramvai și la 200 m al doilea semafor. Din cele 30 de secunde alocate, foarte puțin timp sunt pe verde ambele. Acest lucru lasă să treacă foarte puține mașini.

Ar mai fi multe de spus. Nicolina este doar un bulevard. Presupun ca probleme similare sunt și pe altele.

Să înjurăm este simplu, dar ne-ar fi mai bine dacă am căuta soluții. Nu este de calificarea noastră să reglăm traficul din oraș, dar cine știe, poate unele idei, de aici, de la voi, pot fi dezvoltate de către decidenți.

Pe termen scurt… soluția fiecăruia dintre noi este să ne trezim mai dimineață. Alta nu văd. Detest oamenii singuri care ne îndeamnă pe noi cei cu copii să-i ducem cu bicicleta la școală. Și pe viscol și pe ploaie cum facem? Am putea să-i rugăm pe cei care circulă în mașină singuri să nu o mai facă… Dar la urma urmei este dreptul lor. Văd prin grupurile sociale locale forme de organizare pe transport: iau copiii spre școala X. Eu am deja 3 în spate plus soția… nu prea ar mai fi loc, decât dacă unul din copii din zonă ar fi la aceeași școală și părinții nu ar avea serviciu tot în oraș.

Din partea autorităților m-aș aștepta ca în săptămânile până încep studenții cursurile (on-line ) să regleze puțin semafoarele în așa fel încât să fie mai mult verde pe bulevard și acesta să fie sincronizate pe timp intercalat începând la un capăt la celălalt. Ce vreau să spun prin asta: De exemplu, semaforul de la Segros cu cel din vale de la Grădiniță: Când ambele se fac roșu în același timp, coloana nu se mai mișcă. Cei din adiacente intră în intersecție și o blochează. Cei dinspre CUG nu mai pot înainta când se face verde la cele două semafoare. În acest scop eu aș configura ca unul să țină mai mult și altul mai puțin.

Pe termen mediu, aș face benzile dedicate până la capăt plus parcările de intrare în oraș.

Pe termen lung… metrou suspendat.

Cam atât. Noi să fim sănătoși… și calmi!

Dacă sunteți sau nu de acord cu aceste opinii, sau doriți să le completați, utilizați vă rog secțiunea comentarii a acestui articol. Dacă vi se pare că am scris bine, puteți face un Share poate ajunge și mai „sus”.

Funcția Filter() din #Excel 365

Odată cu introducerea formulelor de tip dynamic array în Excelul din Office 365, multe metode de lucru și formule se pot schimba prin simplificarea acestora sau obținerea mai rapidă a rezultatelor dorite. Excelul din O365 este disponibil doar celor care au o subscripție activă de Office 365 și sunt disponibile și funcționale atât în aplicația client, cât și în browser.

Din toate funcțiile noi, funcția Filter() atrage atenția prin simplitatea sa și varietatea de cazuri de utilizare. Pe parcursul acestui articol voi exemplifica diferite cazuri de utilizare, dar și comparația cu alte funcții de căutare.

Fișierul cu exemplele din acest articol, poate fi descărcat de la adresa: https://1drv.ms/x/s!ApGubfWFh8NurMUZaU_xz4CzE8f8wg?e=FMOtwo

 

Sintaxa funcției este foarte simplă:

Sau în format text: =FILTER(bloc de celule; conditii; dacă nu sunt înregistrări care să regăsească condiția)

Separatorul ; (punct și virgulă) apare din cauză că eu folosesc localizarea în română. Pentru cei care folosesc localizarea în Engleză, separatorul este virgula.

Parametrii funcției explicați:

  • Array (bloc de celule) este parametrul obligatoriu al funcției care permite specificarea:
    • Numelui unui tabel – extrage date de pe toate coloanele tabelului în cazul în care condiția este îndeplinită;
    • Numele unei coloane din tabel: numetabel[numecoloana] – extrage datele doar de pe coloana specificată;
    • Numele mai multor coloane adiacente: Numetabel[colana1]:numetabel[Coloanan] – extrage datele de la coloana 1 pana la n
    • Un bloc de celule: echivalentul unei coloane (A1:A10) sau unui tabel (A1:D10) – Extrage datele doar din blocul de celule specificat.
  • Include (condiție sau condiții cumulative) este un parametru obligatoriu care permite definirea:
    • Unei singure condiții sub forma de coloană de tabel: numetabel[numecoloana]=valoare sau bloc de celule A1:A10 = valoare;
    • Mai multor condiții în formatul: (conditia1)*(conditia2)*(conditia3)
  • If_Empty (textul de afișat dacă nu sunt înregistrări în blocul specificat care să îndeplinească una din condițiile cerute): este un parametru opțional sub formă de text sau o altă formulă care să ofere un rezultat în cazul în care Filter() nu returnează valori. Exemplu: „Nu există înregistrări care să îndeplinească condiția”

Exemplificare comparativă

În exemplul din imagine avem un tabel de stocuri cu intrări pentru diferite date. Tabelul se numește tblStoc, iar produsele care au codul evidențiat au mai multe intrări.

Problema simplă este de a căuta denumirea unui produs. Aparent cea mai simplă formulă este VLOOKUP, dar pentru a putea returna textul Nu este trebuie folosită și funcția IFNA(). Filter și Xlookup sunt singurele funcții care au incorporat parametrul de tratare a rezultatului #N/A în cazul în care codul de căutare nu există în tabelul de date.

 

Vulnerabilitatea funcțiilor VLOOKUP și OFFSET este dată de specificarea în mod absolut a numărului coloanei de pe care trebuie să extragem informația: 2 la Vlookup și 1 la Offset (La Offset numerotarea liniilor și coloanelor începe de la 0 față de celula de referință. Vezi detalii aici). Ca să putem îmbunătăți puțin această experiență putem combina cele două funcții cu un Match. (Vezi foaia de calcul P1(2). Am înlocuit în cele două funcții valorile absolute cu funcția Match care permite căutare după numele coloanei din I4 (Nume produs) în capul de tabel inițial. În felul acesta cele două funcții returnează valori corecte chiar dacă se adaugă sau elimină coloane.

Dezavantajul funcțiilor clasice este acela de combinare a mai multor funcții pentru obținerea aceluiași rezultat.

Căutare în stânga

În problema 2, pe același set de date (Numele tabelului este schimbat în tblStocP2), ne propunem ca pe baza numelui produsului să extragem codul acestui, ceea ce înseamnă căutare în stânga. Această cerință „scoate din joc” funcția VLOOKUP care nu poate realiză căutare decât în dreapta coloanei pe care se află valoare de regăsit.

În celelalte doar schimbăm coloanele din tabel și rezultatul va fi returnat corect. La Offset trebuie să schimbăm numărul coloanei de pe care se vor extrage datele, în cazul nostru prima coloana va avea valoarea 0.

 

Căutarea pe bază de wildcard-uri

În problema 3 am schimbat cerința în a aduce prețul de înregistrare, pentru a permite și funcției VLOOKUP să „ia parte” la acțiune.

În prima variantă am introdus numele întreg al produsului pentru a verifica dacă toate funcțiile aduc date corect.

Ca să poată funcționa, VLOOKUP-ul în acest caz NU mai permite adresarea sub forma numelui de tabel, fiind necesară adresarea blocului de celule în format „clasic”: B1:E31, coloana B fiind coloana 1 în acest caz, cea pe care se găsește valoarea de căutare.

În cazul în care introducem înlocuitorul * (asterix) în numele produsului vom observa că funcția Filter și XLOOKUP nu mai funcționează corect.

Caracterele pentru Wildcard-uri în Excel sunt:

  • * (asterix) înlocuiește oricare caracter dintr-o celulă; În Exemplul nostru: Paste* va regăsi toate produsele care încep cu Paste inclusiv Pastelini
  • ? înlocuiește un singur caracter din celulă: De exemplu: Ia?i va regăsi toate valorile de tip: Iași sau Iasi.
  • ~ (tilda) se folosește pentru a regăsi în celule cele două caractere. De exemplu dacă la un import diacriticele sunt înlocuite cu semnul întrebării, pentru a le regăsi pe toate va trebui să trecem la șirul de căutare expresia: *~?*

Pentru a putea face Filter să funcționeze cu Wildcard-uri trebuie să îl combinăm cu funcția SEARCH() în format dinamic array. Această funcție generează un tabel (array) cu poziția de start a șirului de căutare din tabelul de date. În acest caz, dacă va regăsi șirul de căutare va genera un număr sau eroarea #VALUE! dacă șirul nu apare în celulă. Acest artificiu ne permite să extragem prin combinare cu funcția ISNUMER() toate valorile care îndeplinesc criteriul de căutare specifificat. În felul acesta FILTER devine un instrument mult mai puternic decât toate celelalte funcții pentru că nu scoate doar prima valoare întâlnită ci toate valorile de căutare.

 

Extragerea mai multor coloane și linii

În cazul în care la tabelul de căutare (primul parametru din funcție) introducem numele tabelului (var 1) sau a adresarea mai multor coloane adiacente (var 2), filter extrage toate informațiile despre produsul cu codul specificat.

Pentru cei care se doresc la o comparație cu DGET() vă reamintesc că acesta poate extrage o singură valoare din tabel. În cazul în care sunt mai multe linii care îndeplinesc același criteriu vom obține eroarea #NUM!

O alternativă la această implementare de Filter() este Offset() cu precizarea că datele din tabel trebuie să fie ordonate după cod pentru a putea să extragă corect valorile. În acest fel va trebui să realizăm întâi sortarea într-o altă zonă, dacă nu vrem să modificăm tabelul inițial, prin utilizarea funcției SORT() apoi facem referire la această zonă în Offset().

Exemplificare cu Offset și Sort

 

Căutarea după criterii cumulative („AND”)

Filter permite în același timp căutarea după mai multe criterii.

În acest caz, cele două criterii sunt trecute separat în paranteze cu simbolul * între ele.

Căutarea cu „OR”

Operatorul OR nu poate fi folosit explicit în Filter. Dar în cazul în care avem două condiții sub formă de OR atunci putem adăuga simbolul + între cele două condiții pentru a realiza căutarea.

Fișierul cu exemplele din acest articol, poate fi descărcat de la adresa: https://1drv.ms/x/s!ApGubfWFh8NurMUZaU_xz4CzE8f8wg?e=FMOtwo

Reamintesc că ele funcționează doar în versiunea de Excel din Office 365.

Pentru utilizatorii de Google Spreadsheet, funcția Filter funcționează asemănător acestui articol și acolo cu diferența că nu este tratată componenta de #N/A dar cu plusul că aduce și capul de tabel în mod automat..

 

Sper să fie util cuiva.

Blog la WordPress.com.

SUS ↑