Problemă de formatare în Excel

[Update – Rezolvarea]

Soluția câștigătoare este cea care presupune execuția cu cel mai puțin efort posibil. Așa cum am specificat în mesajul inițial, formatarea condițională era soluția cea mai la îndemână. Problema este că din câte am fost învățați formatarea condițională la nivel de bloc de căsuțe se aplică pentru o valoare fixă… în soluțiile mai evoluate pentru o valoare specificată într-o anumită celulă.

Interesant în schimb este că Excelul știe, da Excelul știe, să aplice relativitatea celulelor în formatarea condițională. Și pentru mine a fost o surpriză, de aceea am ținut să partajez cu voi această problemă, pentru că ”nu-i așa?”… poate fi fun.

Nu vă mai fierb. Soluția era așa:

  1. Se selectează blocul de căsuțe de la B2 la F5
  2. Conditional formatting, Highlight Cells Rules, Less than
  3. În fereastra cu formula se scrie la Format cells that are… =$A2
  4. Ok

image

Și merge!

Stupid de simplu nu? Învățămintele pe care ar trebui să le deducem: nu trebuie să căutăm soluții complicate la probleme simple! Dacă avem o cale de urmat, suntem datori să o încercăm. Necunoașterea te face să pierzi mai mult timp decât ar trebui.

Îmi cer scuze celor care ar fi dorit să răspundă și nu le-a mers adresa de e-mail pe care am specificat-o greșit… din viteză!

O să-i specific doar pe cei care au trimis soluții complete sau sefe.

Primul care a răspuns la mesaj a fost OvidiuD, din Iași. Soluție corectă.

Al doilea a fost AlexandruD din București la câteva minute după soluția lui Ovidiu.

Al  treilea a fost IonutE din Brașov care a dat o soluție nu tocmai optimă dar corectă. La fel ca el am mai primit alte mesaje. Soluția lor era de a formata prima celulă din tabel și apoi cu Format Painter să copie formatarea din celula de date odată pe linie și apoi în jos. Nu e cea mai rapidă dar este corectă.

Mult mai puține soluții față de problema trecută dar una dintre ele merită premiul de soluția sefe, și vine de la CiprianS din Iași:

Se adauga codul de mai jos in Visual Basic Editor:

Private Sub Worksheet_Change(ByVal Target As Range)

    If Target.Column <> 1 Then

        currentRow = Target.Row

        If Target.Value < Cells(currentRow, 1).Value Then

            Target.Font.ColorIndex = 3

        End If

    End If

End Sub

Acum, eu zic că mă pricep puțin și la VBA, dar… o soluție nu este completă dacă nu are și o documentație corespunzătoare. Cum se execută? De ce? :) De multe ori ”butonangiilor”, cum ne spunea profesorul Oprea, li se pare pierdere de timp să-ți explice cum să folosești un cod. Dar mai mulți decât geeks sunt utilizatorii care nu pot obține/folosi rodul muncii fără documentația completă.

Cam atât pentru astăzi. Credeți că ar merge să vă dau o problemă cu rotunjiri la nivel de fracțiuni, pentru a cărei rezolvare am beneficiat și de ceva lăzi de bere? :)

Dacă aveți probleme interesante din Excel, dați un mail și le lansăm în public.

Mulțumesc tuturor pentru implicare.

PS. De ce fac chestiile astea? De fun! ;) Asta e menirea educației în fapt: ținerea cerebelului ocupat și partajarea cunoașterii. Că eu și mulți alții o facem instituționalizat?! Asta este doar chestie de conjunctură.

[/UPDATE]

 

Având în vedere interesul crescut față de subiect, m-am gândit să continui poveștile cu Excel și să vă dau o nouă problemă de rezolvat.

Se dă următorul tabel:

image

Se observă că valorile de pe coloanele 1,2,3,4,5 care sunt mai mici decât cele de pe coloana Refer sunt evidențiate. Aparent problema este simplă și orice utilizator trecut de nivelul începător se duce cu gândul spre formatarea condițională.

Numai că avem o constrângere foarte importantă! Soluția cea mai bună este cea care va prezenta un mod cât mai rapid de rezolvare sau utilizarea câtor mai puține operațiuni, formule, comenzi.

Soluțiile care presupun adăugarea și utilizarea de coloane suplimentare vor fi depunctate, dar vor fi lăudate dacă folosesc ”cârnați” întregi de formule, sub-formule și if-oase. :)

Aștept rezultatele pe e-mail la adresa: valygreavu [at] hotmail.com până marți, 18 septembrie ora 22:00. Nu comentați metodele de rezolvare în public, decât după expirarea timpului.

Succes!

Problemă cu șiruri in Excel

Sunt la un curs de Excel și mi-a venit în cap o problemă faină, zic eu, de Excel.

Așa că m-am gândit să o aduc în atenția voastră și să vă provoc la o rezolvare.

Rezultatele trebuie trimise prin e-mail la valygreavu [at] hotmail.com până joi, 13 septembrie ora 22:00.

UPDATE: Trimitere rezultate încheiată! Soluția câștigătoare:

=IF((LEFT(RIGHT(A2;3))=”.”);RIGHT(A2;2);RIGHT(A2;3))

Email Domeniu
x@yahoo.com com
y@yahoo.ro ro
j@hotmail.com com
m@x.jp jp
m@yyyy.com com
x@yahoo.com com
y@yahoo.ro ro
j@hotmail.com com
m@x.fr fr
m@yyyy.mx mx
j@hotmail.com com
m@x.jp jp
m@yyyy.com com

Link public la fisierul Excel cu soluțiile propuse: https://skydrive.live.com/redir?resid=6EC38785F56DAE91!2715

 

Cerința: Care este formula prin care obțineți valorile din dreapta?

Pentru clarificări dați comentarii. Pentru rezolvitori dați soluția pe mail. Cea mai bună soluție va fi publicată.

[UPDATE 14.09.2012 h 00:10]

Cea mai rapida solutie a venit de la Mircea P: =RIGHT(A2; LEN(A2)-SEARCH(„.”; A2; 1))  Foarte buna in contextual datelor, dar nu general valabila in contextual adreselor de tip: prenume.nume@domeniu.co.jp

Altă soluție: =MID(A2, FIND(„.”, A2) + 1, 4) nu se aplică în contextual adresei de mai sus.

Viorel L care mi-a fost student, dar nu la Excel, a spus ca problema este simpla. Si a venit cu formula: =RIGHT(A2;LEN(A2)-SEARCH(„.”;A2)) Normal ca nefunctionala pentru toate tipurile de adrese valabile de mail.

Alina C. a venit cu formula pe care o aveam si eu in minte: =IF((LEFT(RIGHT(A2;3))=”.”);RIGHT(A2;2);RIGHT(A2;3)) Se vede ca mi-a fost studenta si a facut Excel cu mine, chiar dacă la orele cu ei nu am facut așa ceva, se pare că a înțeles metoda :)

Ionut S. a vrut sa fie altfel si a trimis o solutie prin care sa scoti domeniul de mail nu domeniul de root. Formula lui arata: =LEFT(RIGHT(A2;LEN(A2)-FIND(„@”;A2));FIND(„.”;RIGHT(A2;LEN(A2)-FIND(„@”;A2)))-1) si se pare ca merge pe mai multe tipuri de adrese. De fapt pe toate pe care le-am testat eu, chiar dacă soluția originală nu este funcțională pentru a scoate domeniile de tara: =RIGHT(A2;LEN(A2)-FIND(„.”;A2))

Aceași soluție nefuncțională cu Right la început a mai venit de la alți concurenți, bună pentru exemplul dar, dar nu pentru toate adresele de e-mail valabile.

Simona C. a dat soluția corectă folosind aceeași formula ca Alina C. Si Simona a trecut pe la orele mele… deja devin suspicios.

Ovidiu D, a obținut rezultate destul de interesante în prima versiune, dar nu suficient de exacte. Formula lui: =RIGHT(A2;LEN(A2)-FIND(„.”;A2;FIND(„@”;A2;1))).

În ordinea mesajelor mi-a mai scris și Ala Posta, o soluție cu Viagra… dar nu se aplică în cadrul problemei curente :)

Ovidiu D a mai venit cu o soluție bazată pe array-uri. Din păcate formula: {=RIGHT(A2:A16;LEN(A2:A16)-FIND(„.”;A2:A16;FIND(„@”;A2:A16;1)))} returnează același rezultat, inexact ca cel al formulei de mai sus.

Mihai P a trimis o altă formă de RIGHT cu trim-uri =TRIM(RIGHT(A2;LEN(A2)-FIND(„.”;A2))) O menționez pentru că TRIM-urile pot avea un rol bun în lucrul cu șiruri… din păcate soluția se aplică doar pe datele de test nu și pe toate celelalte adrese de e-mail valabile.

Catalin D aplica un fel de hard-code prin formula sa: =MID(A2;SEARCH(„.”;A2;SEARCH(„@”;A2)+1)+1;6) Nu am înțeles cum a obținut acea valoare 6 din search, dar pare destul de matematizat pentru că ies destul de multe cazuri corect la iveala.

Andreea A propune asa după cum spune și ea o soluție mai băbească… care arată cam așa: =RIGHT(RIGHT(A2; LEN(A2)-FIND(„@”; A2)); LEN(RIGHT(A2; LEN(A2)-FIND(„@”; A2)))-FIND(„.”; RIGHT(A2; LEN(A2)-FIND(„@”; A2))))

Mie mi-a plăcut pentru că este lungă și drăguță… are atât de multe paranteze… :)))

Și în ordinea lor încă vre-o două mesaje cu right șiiii mid și right și len și search…

De departe în schimb cea mai lungă formulă îi aparține lui Constantin S:

=RIGHT(RIGHT(A2;LEN(A2) – SEARCH(„@”;A2)); LEN(RIGHT(A2;LEN(A2) – SEARCH(„@”;A2))) – SEARCH(„.”;RIGHT(A2;LEN(A2) – SEARCH(„@”;A2)))) Nefuncțională complet din păcate…

Așa cum îmi imaginam, Alexandru D. de la www.tutorialeoffice.ro a trimis cele mai multe și mai variate soluții de rezolvare a problemei cu datele de test prezentate. Din păcate nu toate exacte… făcând aceeași omisiune ca majoritatea, aceea de a rezolva problema fără a parcurge corect pașii: analiză, proiectare, implementare, testare, documentare și utilizare.

Aparent pare simplă problema dar metodologia de lucru în rezolvarea problemelor în Excel este să poți rezolva toate problemele de același tip sau cu diferite seturi de date, utilizând o singură formulă.

Felicitări Alinei și Simonei pentru soluție. Nu știu dacă este suficient pentru ele să știe că au reușit… să dea soluția corectă… pentru că trebuie să se mulțumească cu asta momentan. :)

Mulțumesc pentru implicare și sper că va plăcut!

PS. Vă provoc la o regulă de 3 simple sau la o ecuație de gradul 2 în Excel? :)

 

Daaar… de ce îmi pasă mie de plagiatul PM-ului ţării?!

Discleimăr: 
Acest articol poate conține erori de logică și limbaj. 
Într-un mod revoltător este scris într-un limbaj al vorbirii curente 
exprimând o părere/opinie exclusiv proprie și personală în mod dezlânat 
și poate complet de neînțeles. Rog cititorii, care ajung întâmplător aici,
 să se oprească din citit oricând consideră necesar după acest punct.

Impulsiv şi dintr-o dată, fără să stau prea mult pe gânduri aş spune că îmi pasă al naibii de mult! De ce? Păi în primul rând pentru că şi eu sunt Doctor şi că pentru a obţine acest titlu am muncit aproape 10 ani. 10 ani?! Mda… 10 ani… şi vina mi se datorează. Pe timpul meu (admis la doctorat în 1999), şi a lui Ponta, doctoratul ţinea cam 4 ani la zi şi 6 ani la ID. În timpul acesta aveai un serviciu, trebuia să ţii ore de luni până duminică şi eventual să fii şi un membru al familiei. Chiar aşa! Numai membrii propriilor familii pot şti câte sacrificii au făcut, câte compromisuri şi câtă înţelegere… totul pentru a termina celalalt cu bine doctoratul şi aşi clădi o carieră academică pe baza acestui titlu.

Puţini terminau în 6 ani doctoratul. Foarte puţini! Numai că dacă până prin jurul anilor 2000-2002, dacă depăşeai termenul, era aproape ca o regulă general valabilă, după 2005 s-a băgat o taxă de penalizare de 1200 lei pe an pentru fiecare an de întârziere. Eram în plină ascensiune în perioada aia. Descoperisem lumea prin Imagine Cup şi în acelaşi timp aveam nevoie să fiu student la doctorat pentru a putea candida şi în 2006. Apoi am învăţat că ceea ce făceam eu la Reţeaua FEAA era artizanat şi că de fapt lucrurile stăteau mult mai elaborat. Bani avea facultatea de-i întorcea cu lopata… deci dacă peste noapte visam că vreau un blade center de 1,5 miliarde a doua/a treia zi îl aveam în “ogradă”. Ajunsesem ca meşterul Manole: instalam tot felul de platforme noaptea, a doua zi le testam şi-mi dădeam seama că nu e suficient de bine. Mai citeam o carte, o documentaţie şi noaptea formatam şi o luam de la capăt. Şi aşa am ajuns de studii de caz….

Ameninţat din ce în ce mai des cu exmatricularea  de la Doctorat am ajuns la trista concluzie că munceam pe gratis şi plăteam pentru ceea ce ar fi trebuit să fac.

Cu greu am terminat şi doctoratul. Nu am fost mulţumit de ceea ce am făcut. Uitându-mă peste ani în urmă, nu pare chiar atât de rău, dar nu atât de bine cât mi-aş fi dorit.

Şi ce vină are domnul Prim în toată treaba asta? Absolut nici una.

Şi ce treabă are plagiatul cu ţara? Chiar aşa.. aparent nici una.

Nu fură toată lumea în ţara asta? Păi aparent se pare că da. Iar el nu a furat din buzunarul nimănui, nu-i aşa? Păi şi atunci de unde atâta obidă? Exact, am intrat cu toţii în jocul băsist al dottore-ului şi am uitat să ne uităm în curtea noastră şi să vedem de fapt că fiecare dintre noi furăm. Şi mai ales că dumnealui nu a furat, repet, de la nimeni!

Ia să întoarcem foaia! Adică… eu sunt cadru didactic. Şpagă nu am de la cine să iau pentru că sunt „al dreacu” și studenții nu-mi dau nimic. Pe la ID unde se „mulgea” mai bine pe timpuri le-am băgat evaluare automată pe bază de teste grilă în BlackBoard. Poate să vină și Rectoru… și Ministreasa, chiar și Președintele Ales… că nu are ce-i face. La finalul testului apare nota și studentul știe dacă a trecut sau nu. Automat nota e dusă în baza de date și afișată în catalogul studentului. Versionare, dublă aprobare la modificare, audit pe fiecare operațiune… păi ori suntem informaticieni, ori nu?

Păi dacă eu nu am ce fura… de ce altul ca mine să fure? Doar pentru că este în politică? Păi nu zice la cartea de căpătâi că oamenii se nasc egali? Atunci și el s-a născut om, nu politician… deci dacă eu nu fur nici el să nu o facă.

Dar tata fură? Păi la o palmă de pământ pe care o are el de la cine să fure? Nu mai sunt CAP-uri, IAS-uri și alte forme de culturi ale statului din care să furi. Dacă te duci în lanurile lui Porumboiu ca să furi 4-5 popușoi pe care sa-i fierbi să să-i dai la nepoți să-i mănânce, întâi te împușcă paznicii și după aia dacă scapi te întreabă cu ce ocazie pe la ei. Deci nici el nu fură. Mai nou îmi spunea, ceea ce eu nu prea credeam, că sunt oameni la tară care nu au ce mânca. Păi dacă la Porumboiu îi împușcă, în momentul în care vin pe glia ta, cutuma spune să bagi furca în el și după aia să-l întrebi cu ce ocazie pe la tine.

Deci ei nu fură… asta ne îndreptățește să mai spunem că toată lumea fură? Păăăăi nu prea se justifică. Sigur orice proces logic inferent dacă nu este validat poate avea scăpările sale. Pot fi acuzat de băsism și e clar că îmi caut eu exact acele cazuri particulare prin care să demonstrez contrariul. Mai ales că PM-ul nu a furat de la nimeni și mai ales nimeni nu l-a reclamat că ar fi furat de la el.

Pe timpul când toate mergeau bine în țara asta lectorii ajungeau în 2-3 ani conferențiari și în alți 2-3 profesori. O carte, 4 articole publicate la unde o fi fost, de îmbătat bine o comisie și o gașcă de colegi și cam acestea erau criteriile de promovare de la un grad la altul. E clar că sunt cam exagerate afirmațiile de mai sus și că ele erau în cea mai mare parte doar excepții nu o regulă de zi cu zi. Daaar nu pot uita din perioada respectivă (2002 parcă) un articol la o conferință științifică internațională cu prezență din România și Moldova, a unui mare profesor și care se intitula ceva de genul: aplicații de arhivare electronică a documentelor și al cărui conținut era un copy/paste din helpul de la WinZip! Păi ori suntem cercetători ori nu?

Vă dați seama câtemai de-a frigidere pline de mezeluri și-a luat Funeriu cu noile norme ale lui de promovare!? Ce e acela factor de influență în articole ISI pe care trebuie să le plătești cu 400-500 de Eur ca să le poți publica sau susține la o conferință? Ce e aia 400 de Eur când veniturile tale lunare sunt sub acea sumă? De ce adică să promovezi exclusiv pe cercetare științifică atâta timp cât mare parte din timpul la facultate ți-l petreci la catedră? Care este plus valoarea care o dai tu pieței și studentului prin faptul că ai cercetat influența pixelului albastru din colțul din stânga sus al ecranului în productivitatea lucrătorilor informatizați din domeniul panificației? Unde este echilibrul dintre cele patru dimensiuni (teaching, research, administrative și prestige) ale unui cadru didactic, atât de bine reglementate în cadrul universităților din top 100 mondial?

Revin la … ce treabă are asta cu doctoratul PM-ului? Așa erau vremurile! Nimeni nu era interesat de nimic etic ci de propria sa ascensiune. Așa era acea perioadă… și mulți am avut culoarele noastre sau am fost prea tineri pentru asta. O vorbă veche spune așa: dacă tata a purtat opinci, eu nu am voie să port cizme? Dar aici nu se aplică asta ci tocmai inversul său: Dacă tata purta cizme, eu de ce sunt obligat să port opinci chiar dacă fac același lucru ca el? Poate din cauză că ne chinuim de prea mulți ani să ajungem și noi măcar într-un top 500 mondial? Anul acesta Cuza a ajuns la 601+… și asta nu mulțumită mie ci multor alți colegi cu vizibilitate internațională. Cârcotaș fiind nu pot să mă leg de faptul că mulți din acei colegi au câte 25-30 de studenți într-o serie de curs, iar eu am în cel mai fericit caz 125. Una este să ții ore cu 25 de studenți să le dai examen la final și să le pui note și alta este să faci EVP cu 125 de studenți unde ai în cel mai fericit caz 6-7 examene de-a lungul semestrului. Pentru ce atâta chin? Pentru că vrei ca din cei mulți, cât mai mulți să ajungă să mănânce o pâine cât mai albă. Așa mi-am înțeles eu rolul, așa mi-am imaginat eu profesorul și așa fac. Îmi pasă prea mult de viitorul studenților?! Sincer da. În calitatea lor pe piața muncii mă oglindesc eu ca și profesor. Și cum a fi cadru didactic nu este suficient ca să-ți întreții o familie, îmi pasă de imaginea mea pe piața muncii pentru serviciile de consultanță pe care le-aș putea prinde într-o societate normală, în care legile șpăgii, comisioanelor, intereselor propriilor grupuri, și las-o mă că merge și așa nu ar face diferența … și pe piața de consultanță IT.

Bine, bine… dar ce treabă are acel doctorat plagiat cu starea de fapt? Păi din câte știm, domnul PM (observați că P este lângă O pe tastatură… Doamne! Era să scriu O în loc de P) este conferențiar, iar ca să ajungi conferențiar ai nevoie de doctorat. Implicațiile nu se opresc aici. Pe timpul când domnu PM a ajuns doctor se dădea de la stat 25% în plus la salariu pentru că aveai gradul de doctor. Asta, din superficialele mele cunoștințe de drept se cheamă fals și uz de fals în scopul obținerii de foloase necuvenite. Cred că face parte din codu penal, nu?

Bun, dar nu a luat de la nimeni… pentru că funcția de conferențiar o ocupă la o Universitate privată. Cum sunt un mare fan al curentului care susține termenul de fabrici de diplome, aș putea chiar să mă bucur că PM-ul e băiat deștept și le-a luat banii ălora. Dar Universitatea de care vorbim… nu este dovedită a fi una din cele mai nașpa universități private din România… și cum vorbim de toleranță și concurență poate că o să mă rezum la a spune că nu e treaba mea ce fac dumnealor cu banii contribuabililor lor.

Daaar avem o altfel de mare problemă. În perioada de după 2004 de când a devenit doctor cu 25% în plus la salariu domnul PM a ocupat și o serie de funcții publice… plătite desigur din banii tuturor contribuabililor! Bani care ar fi asigurat niște pastile în plus într-un spital s-au dus pe 25% în plus la salaru unui viitor PM.

Acum înțelegeți de ce mă doare atât de tare? Nu stau în picioare argumentele?! Mai am unul… de spus. Restul le păstrez pentru comentariile iubitorilor de plagiatori.

Că lumea fură, că unii au făcut și au dres, și au ajuns, e treaba lor. Bravo lor! Mă bucur pentru ei. Că regulile nu-mi mai permit și mie să fac la fel… da ar putea să mă oftice, doar dacă nu aș fi conștient că doar cu mai multă exigență, prestanță și implicare poți să crești nivelul de calitate a muncii pe care o faci dar mai ales a imaginii cu care ești văzut de oamenii din jur dar și de colegii din exterior! Regulile, normele și metodele, nu erau perfecte nici atunci, nici acum și întotdeauna s-au găsit portițe de scăpare, eludare, îndulcire pe românește a acestora.

Daaar… Din 2008 ne-am cumpărat acel BlackBoard pe care l-am mai amintit și mai sus. În el am găsit o mică și insignifiantă, aparent, aplicație de detectare a plagiatului! Și având șefi cu mintea luminată, mi-au acceptat și această nouă găselniță, s-a implementat și se utilizează din plin pentru referate, proiecte, lucrări de licență și disertație. Cei mai împotriva noului sistem au fost studenții… dar nu la nivelul de revoltă la care mă gândeam. Oare de ce?! Pentru că sunt conștienți că NU le cerem decât să nu fure! Să fie cinstiți! Să-și facă singuri lucrările… și să dovedească în acest fel că merită să mănânce acea pâine albă de pe piața muncii! Daaaar acum ce justificare mai am eu în fața lor? Cum poți să le mai justifici că nu e bine să fure și că munca te înnobilează, când al doilea sau al treilea om în stat si-a construit cariera academică pe un fals?!

Tot mai multe universități implementează sau au în plan să implementeze soluții antiplagiat. Așa! Șiiii… cum vor motiva ele acest demers în fața unor organizații studențești poate mai bine organizate decât cele de la noi?

Dacă voi aveți un răspuns … îl aștept cu interes!

Până atunci încă mai sper într-o retragere a titlului de doctor. Că vrea să stea PM, e treaba lui. Că ne afectează pe toți imaginea proastă pe care o are… aș spune că doar indirect iar pentru unii insesizabil. Pe tata îl afectează dacă nu plouă la țară, pe vecinul meu manelist de la apartamentul inferior îl afectează că i se termină băutura. Pe … a 12-a îi afectează Bacu… pe mulți părinți îi afectează începerea școlii, deci NU ne pasă de doctoratul lui Ponta.

Daaar mie îmi pasă! Și ar trebui să le pese tuturor celor care și-au făcut în mod cinstit un doctorat… și tuturor celor care sunt în chinurile facerii acelui doctorat… dar mai ales ar trebui să le pese conducătorilor de doctorat pentru că ei au cea mai mare influență în mediul academic! Și ar mai trebui să le pese tuturor celor care NU iubesc minciuna și mitocănia cu care ne spune că el nu a furat nimic… când este atât de vizibilă dimensiunea hoției!

Blog la WordPress.com.

SUS ↑