Search This Blog

Turinys

Saturday, July 30, 2016

"Sumif" triukas - alternatyva "pivot table"

Ši pamokėlė apie tai, kaip, turint didelę lentelę su pasikartojančiais elementais, išfiltruoti tik unikalius elementus, ir unikalių elementų sąraše pateikti bendrą kiekvieno unikalaus elemento vertę, gautą susumavus pasikartojančių šio elemento įrašų vertes.

Kaip minėjau ankstesnėje temoje, neseniai teko tyrinėti ES struktūrinių fondų paramą gavusių įmonių sąrašą. Duomenų lentelėje turėjau daugiau nei 13 tūkst. projektų. Prie kiekvieno projekto yra pateiktas jį įgyvendinančios įmonės kodas (pavyzdyje kodai išgalvoti) bei projektui skirta paramos suma (kuri taip pat išgalvota). Štai, ta lentelė:


A
B
C
1
Projekto eilės numeris
Įmonės kodas
Gautos paramos suma
2
1
2436270
108000
3
2
5859378
328000
4
3
6675973
210000
5
4
3443355
176000
6
5
9566815
135000
7
6
4148778
244000
8
7
7753818
446000
9
8
3176602
179000
...



13144
13143
7558634
150000
13145
13144
7771457
195000
13146
13145
7605815
344000
13147
13146
2194383
57000
13148
13147
8571162
219000
13149
13148
2199652
114000

Ankstesnėje temoje paaiškinau, kaip susikurti lentelę, kuri apimtų tik unikalius paramos gavėjus, t. y. paramos gavėjai nesikartotų. Kaip rašiau, unikalius paramos gavėjus išfiltruosime pagal požymį "1" (kuris reiškia, kad žiūrint nuo viršaus, įmonės kodas paminėtas pirmą kartą):


Unikalių gavėjų sąrašą turėtume nukopijuoti, pavyzdžiui, į naują skaičiuoklės lapą:


A
B
1
Įmonės kodas
Bendra gautos paramos suma?
2
2436270

3
5859378

4
6675973

5
3443355

6
9566815

7
4148778

8
7753818

9
3176602

...


6741
7605815

6742
2194383

6743
8571162

6744
2199652


Tad kitame skaičiuoklės lape jau turime unikalių paramos gavėjų sąrašą, ir norėtume sužinoti, kokia yra bendra kiekvienos įmonės gauta paramos suma (kai kurios įmonės gavo paramą daugiau nei vienam projektui). B2 langelyje įveskime formulę:

+SUMIF(Lapas01!$B$2:$B$13149,A2,Lapas01!$C$2:$C$13149)

Mūsų originali lentelė su pasikartojančiais elementų įrašais yra lape "Lapas01", tad pirmasis formulės narys atspindi plotą, kuriame ieškosime įmonės kodo. Kadangi formulę kopijuosime į visus žemiau esančius langelius, turime šį plotą užfiksuoti naudodami "$".

Antrasis narys "A2" rodo, ko bus ieškoma pirmajame naryje apibrėžtame plote - mūsų naujos lentelės antroje eilutėje esančio įmonės kodo. Kaip matote, "A2" imamas iš to paties lapo, kuriame įrašyta formulė.

Trečiasis narys "Lapas01!$C$2:$C$13149" nurodo, kuriame originalios lentelės stulpelyje pateikta vertė bus prisumuota, radus eilutę su ieškomu įmonės kodu.

Tereikia pertraukti formulę iki paskutinio langelio. Mūsų sąraše yra 6743 unikalios įmonės, tad formulę pertraukti su pele būtų neefektyvu. Galima daryti taip:

1) nukopijuoti formulę iš B2 langelio su ctrl+c;
2) pažymėti A2 langelį;
3) spustelėti ctrl+↓; tokiu būdu žymeklis akimirksniu atsidurs paskutinėje lentelės eilutėje (jei būtume nuspaudę šią klavišų kombinaciją esant pažymėtam B2 langeliui, žymeklis būtų peršokęs ne į paskutinę lentelės, bet į paskutinę lapo eilutę, pvz., į kokią 1 000 000 eilutę; taip yra todėl, kad B stulpelyje po B2 langeliu jokių įrašų nėra, tad nėra kaip identifikuoti lentelės pabaigos);
4) turime žymeklį 6744 eilutėje, tad tereikia pasižymėti B6744 langelį, ir spausti ctrl+shift+↑. Tokiu būdu bus pažymėtas visas B stulpelis (nuo B2 iki B6744), tad tereikia paspausti ctrl+v, kad į visus pažymėtus langelius būtų įklijuota kompiuterio atmintyje esanti mūsų formulė.

Viskas, gavome unikalių įmonių sąrašą su bendra kiekvienos įmonės gauta paramos suma:


A
B
1
Įmonės kodas
Bendra gautos paramos suma?
2
2436270
640000
3
5859378
819000
4
6675973
750000
5
3443355
456000
6
9566815
754000
7
4148778
1054000
8
7753818
990000
9
3176602
326000
...


6741
7605815
344000
6742
2194383
57000
6743
8571162
219000
6744
2199652
114000

Tad linkiu jums išmokti dirbt efektyviau ir sutaupytą darbo laiką feisbuke praleist :D [frazė iš mano pirmosios repo dainos]

No comments:

Post a Comment