Un VLOOKUP aproximativ

Am primit o întrebare de la un cunoscut, legată de un fel de „VLOOKUP” aproximativ. Știu că nu există așa ceva, dar regăsirea datelor după coduri parțiale este posibilă.

În exemplul de mai jos avem un tabel cu date cu coduri alfanumerice, iar în zona de căutare doar prima parte din cod. În G5 avem rezultatul căutării.

Pentru rezolvare am folosit o combinație de funcții INDEX, MATCH și FIND.

=INDEX($B$3:$B$8;MATCH(1;FIND(F5;$A$3:$A$8);0))

în care:

  • $B$3:$B$8 reprezintă blocul de celule cu denumirea care trebuie extrasă în funcție de codul din F5;
  • Funcția MATCH identifică numărul liniei pe care se află codul regăsit prin Find;
  • Funcția FIND, caută după textul din F5 pe blocul de celule $A$3:$A$8 returnând valoarea 1 după care se face MATCH-ul;

Valoarea 1 din FIND este echivalentă începutului de cod din blocul de căutare $A$3:$A$8. Dacă acel cod parțial se regăsește în interiorul coloanei ID și nu începe cu prima literă atunci FIND-ul returnează altă valoare decât 1, și formula nu mai funcționează ca în model.

În cazul în care cele două coduri sunt scrise cu caractere diferite, trebuie menționat că FIND este o funcție case-sesitive. Contează dacă este scris cu litere mari sau nu. Dacă aveți cazuri cu diferite caractere, atunci se recomandă utilizarea funcției SEARCH().

 

În cazul în care dorim să căutăm informații pe baza unor date parțiale din interiorul codului problema se complică puțin, pentru că trebuie să pornim căutarea dintr-o locație diferită de 1, iar funcția MATCH() folosește în căutare maximul valorilor de căutare din șirul de pe care se realizează căutarea.

În continuare un exemplu de problemă și funcția utilizată.

Pentru rezolvare s-a utilizat funcția:

=INDEX($B$17:$B$22;MATCH(MAX(IFERROR(SEARCH(F18;$A$17:$A$22;IFERROR(SEARCH(F18;$A$17:$A$22);));));SEARCH(F18;$A$17:$A$22);0))

În care:

  • MAX(IFERROR(SEARCH(F18;$A$17:$A$22;IFERROR(SEARCH(F18;$A$17:$A$22);));)) este echivalentul valorii 1 din funcția prezentată în exemplul anterior.

 

Aceste modele de implementare funcționează în acest fel doar în versiunile de Excel Online din Office 365.

Pentru alte versiuni, funcția FIND nu mai funcționează ca un Dynamic Array și trebuie scrisă ca o formulă CSE (Ctrl+Shift+Enter).

Sper să vă fie util!

Manual exporting XML data from #Excel

O poveste care mă stresează de ceva vreme este de ce nu merge să faci un export în XML dintr-un fișier Excel pentru a le importa în alte aplicații.

De obicei povestea aceasta se întâlnește în cazul formularelor pe care le primim din partea statului, care vin în format PDF cu conținut exportabil în XML. Acest fișier XML poate fi încărcat în Excel și vedem și în felul acesta avem și schema XML. În felul acesta putem automatiza ca să putem completa mai multe formulare simultan din Excel cu export apoi în XML. Problema apare din cauza faptului că aceste formulare care conțin linii multiple nu pot fi exportate.

Mesajul clasic de eroare este:

Un exemplu de astfel de formular este cel pentru finanțarea cu 2500 lei pentru cei care utilizează telemunca. Vezi detalii aici: https://www.startupcafe.ro/finantari/ajutor-2500-lei-laptop-telemunca-formulare.htm

Model formular:

Ca să puteți vedea schema XML în Excel trebuie să aveți activat meniul Developer.

  • On the File tab, go to Options > Customize Ribbon.
  • Under Customize the Ribbon and under Main Tabs, select the Developer check box.

Ca să putem exporta datele într-un format manual, atunci, ar trebui să emulăm structura xml în coloane noi în Excel. Model în exemplul din imagine.

Trebuie să știm că XML este case sensitive și în orice tag care se deschide trebuie să se și închidă. De asemenea, trebuie să avem un singur Root element, în cazul acestul formular fiind <form1>

După ce am completat structura copiem tot textul (tabelul) într-un fișier text (notepad), îl salvăm ca fișier XML și îl putem deschide cu orice browser sau importa din nou în acel fișier PDF.

Exemplu de cod XML generat:

<form1>

    <lista>

        <formValid>FORMULAR NEVALIDAT</formValid>

        <angajator> SC Alfa SRL </angajator>

        <cui>….

….

</form1>

 

Pare puțin de muncă dar este mai simplu decât să faci fill in linie cu linie în PDF față de un export de salariați/înregistrări dintr-o bază de date.

Sper să vă fie util.

Am fost cenzurat!

Cei care mă cunosc, sau mă urmăresc în Social Media, știu că în mare parte postările mele sunt de cele mai multe ori ironice sau sarcastice. De ce? Pentru că eu cred în zicala: Zâmbind obții mai mult. Și nu mă refer la a obține ceva material, ci pentru că zâmbind poți trece mai ușor peste anumite momente aparent dificile. De asemenea, după mai multe cercetări și experimente, am constatat, alături de administratorului grupului FEAA Iasi, că o abordare diferită în Social Media, trezește interesul comunității și nivelul de reacție, prin aceste postări. În contextul unui interes sporit la nivel de grup, publicarea unui anunț „serios” va deveni mult mai vizibil pentru membrii grupului.

Reglementări legate de libertatea de exprimare

„Libertatea de opinie și libera circulație a informațiilor și ideilor este consacrată de Convenția Europeană a Drepturilor Omului si Pactul Internațional cu privire la Drepturile Civile și Politice, iar aceste drepturi se aplică, nealterat, spațiului online. Organizația pentru Securitate și Cooperare în Europa (OSCE) se implică puternic în protecția libertății de exprimare pe internet, bazată pe aplicarea drepturilor fundamentale în noile domenii din era digitală. În acest sens, Reprezentantul OSCE pentru Libertatea Media susține că libertatea de exprimare și a presei este valabilă pentru toate formele de jurnalism, nu doar cele tradiționale. Iar a aplica drepturi diferite pentru categorii diferite de media ar fi, în esență, o încălcare a drepturilor omului.”

(Sursa: https://www.transparency.org.ro/stiri/newsletter/TIRONewsletter201508.pdf)

Mai adaug la acestea:

  • Declarație privind libertatea comunicării pe Internet. Adoptata de Comitetul de Miniștri al Consiliului Europei la cea de a 840-a reuniune a Miniștrilor Adjuncți. Publicata la Strasbourg in 28.05.2003;
  • Carta UAIC, Art. 6, aliniat (3) Libertatea academică înseamnă … exprimarea liberă a opiniilor, în condițiile respectării eticii universitare… (Sursa: https://www.uaic.ro/wp-content/uploads/2013/12/CartaUAIC2011.pdf)

Context

De câteva zile, public constant despre lipsa de decizie a Universității Cuza de a informa studenții și corpul didactic în legătură cu începerea anului universitar, criticând în special Reprezentanții Studenților în Senatul universității, care, după observațiile mele (posibil eronate) joacă rol de apărători ai stării de fapt, fără a arăta nici un fel de interes în soluționarea rapidă a situației de incertitudine, în interesul studenților în special. De asemenea, sunt situații conflictuale între calendarul cazărilor (care încep pe 21.09) și anunțarea formei de începere a anului universitar (24.09). Le-am „taxat” pe fiecare cu una sau mai multe postări, pe pagina personală cu distribuire pe grupul UAIC Iasi, grup creat și întreținut de studenții din UAIC pentru studenții și absolvenții UAIC. Fac această „presiune” publică pe reprezentanții studenților în interesul studenților de a afla mai repede ce și cum vor face. Primesc zilnic mesaje de la studenți și părinții acestora în care sunt consultat cu privire la aceste aspecte:

  1. Dacă școala începe on-line, de ce trebuie să ne mai cazăm și să mai plătim cazare dacă nu vom putea merge la cursuri?
  2. Dacă se limitează numărul de locuri din cămine, cei care nu au prins cazare, trebuie să aștepte până pe data de 24 un anunț, și dacă se anunță o formă mixtă sau offline de învățământ, atunci prețurile la chirii vor exploda de la o zi la alta.
  3. Dacă aleg să nu mă cazez, bazându-mă pe zvonuri că se vor face doar cursuri on-line, în momentul în care situația revine la normal voi putea să mă mai cazez?
  4. Dacă aleg să mă cazez chiar dacă este învățământ on-line și intră căminul în carantină în 2-3 săptămâni, ce se întâmplă cu noi și cu banii de cazare?

Foarte multe întrebări, la care eu nu am capacitatea și calitatea de a răspunde. Dar pot satiriza situația…

Ieri 15.09.2020 am publicat mai multe postări „acide” (vezi poza) la adresa Reprezentanților Studenților, distribuite și în grupul UAIC Iași, care au atras mai multe reacții și comentarii. Spre seară mai multe postări critice au dispărut din acel grup, printre care și cele două.

(Print screen de pe pagina personală).

Menționez că pagina mea personală, nu conține monetizare și nici promovare plătită, majoritatea postărilor fiind idei proprii și personale, contextuale situațiilor și evenimentelor curente, fără a reprezenta poziția oficială a nici unei companii, instituții sau organizații. Scopul principal este acela de divertisment, satiră sau critică la adresa preconcepțiilor sau situațiilor, expuse într-o manieră proprie și personală. La rândul lor unele din postările mele sunt „trolate” de un grup misterios (https://www.facebook.com/EstiDinUAICDaca) ai cărui „admini” nu i-am identificat. Încă!
Umorul este umor, chiar dacă nu place tuturor.

(Exemplu de trolling la adresa mesajelor mele)

 

Ce am făcut?

Am luat legătura cu moderatorii grupului UAIC Iași și i-am întrebat care este motivul eliminării postărilor. Repet, grupul NU aparține de facto UAIC, ci studenților UAIC. Întâmplător cei doi moderatori contactați, (dintre care doar unul mi-a răspuns până la această oră la întrebări), sunt și studenți FEAA și membrii în Consiliul FEAA, consiliu din care fac și eu parte. În Consiliul FEAA din data de 14.09.2020, i-am criticat direct pe Reprezentanții studenților, pentru lipsa de implicare în ajutorul studenților care i-au ales, pentru a clarifica situația cazărilor și începerea anului universitar (Ședința de Consiliu este înregistrată).

La următorul Consiliu FEAA, voi înainta propunerea de eliberare din funcția de consilier a celor doi studenți pentru limitarea dreptului de expresie și opinie a unui membru al comunității Academice, în baza Cartei UAIC, Art. 6, aliniat (3). În cazul în care aș fi încălcat etica universitară prin acele postări, trebuia să fiu judecat de Comisia de Etică a universității, nu de studenți, și nu fără o informare prealabilă.

În loc de concluzii

Letargia în a alege și a fi ales nu mai are nici o speranță în rândul tinerilor studenți. Căutați în altă parte! Faptul că un ales al studenților apără mai mult interesele conducerii sau situației de fapt este lipsită de demnitate și o rezultantă directă a lipsei de implicare a celor care au ales. O lipsă a culturii de a lupta pentru drepturile tale. Pentru că ne-am obișnuit ca alții să facă pentru noi, să ne ia, să ne dea.

Din păcate, pandemia a fost și va mai fi pentru o perioadă de timp. Ne-am fi așteptat să fim mai aproape suflet cu suflet, dar mesajul de a ne îndepărta (fizic) unii de alții ne-a făcut mai răi, mai egoiști, mai singuri!

Noi să fim sănătoși, dar nu uitați că zâmbetul ajută imunitatea! ;)

Blog la WordPress.com.

SUS ↑