Turėjau darbe tokią situaciją, kad reikėjo duomenų lentelėje prie projekto numerio palikti tik seniausias datas, nes numeriai kartojasi po keletą kartų ir kiekvieną kartą pasikartojęs turi skirtingą datą. Kolega šiam reikalui buvo pasidaręs atskirą stulpelį su datomis (kas yra gerai), o tas datas vlookup’indavo iš kito sheet’o, kuriame buvos pasidaręs pivotą ir atsifiltravęs seniausias datas (kas yra negerai). Man čia pasirodė baisiai nepatogus reikalas, nes kiekvieną kartą skaičiuojant, reikėjo naujinti pivotą, kurio skaičiai keliauja į lentelę, iš kurios jau daromas galutinis pivotas. Todėl aš pasišoviau sutvarkyt šitą reikalą.
Tokioje situacijoje nerealiai tiktų funkcija MINIF, tik deja Excelis tokios funkcijos neturi. Turi SUMIF, COUNTIF, bet MIN ir MAX IF neturi. Keista, kad tokių formulių Excelyje dar neatsirado, nes jos tikrai labai naudingos, o galvojant paprastai nieko čia labai nepridarysi – paprasti IF’ai čia nesuveiks.
Tačiau atradau dar vieną įdomią Excelio dalį – masyvų formules. Darbinio failo čia pademonstruoti negaliu todėl pavyzdį pateiksiu su savo investicijų failu.
Tarkim turime investicijos numerį, mokėjimų datas ir mums reikia priskirti investicijos numeriui seniausią mokėjimo datą. Tą padaryti galima su formule:
=MIN(IF([Investicijos numeris]=[@[Investicijos numeris]];[Mokėjimas datai]))
ir kadangi tai yra masyvo formulė, ją įrašius reikia spausti ne Enter, o Control + Shift + Enter. Tą padarius formulė atrodo taip:
Skirtumas tame, kad formulę apgaubia riestiniai skliaustai „{}”.
Pati formulė skamba taip:
{=MAX(IF(kriterijaus_diapazonas=kriterijus,reikšmės_diapazonas))}
Taigi panaudoję šią funkciją gauname tokį rezultatą: