Vzemimo, da imamo seznam, v katerem imamo v prvem stolpcu (A) datum prodaje, v drugem (B) pa količino prodanih izdelkov. V celico D2 vpišemo datum, ki nas zanima, in radi bi, da se v celici E2 prikaže količina prodanih izdelkov v tednu, v katerem je bil ta dan.

Najbolj logično bi bilo, da uporabimo funkcijo SUMIF(). Kaj hitro pa ugotovimo, da zadeva ne deluje tako, kot bi si želeli, saj Excel ni najboljši pri primerjanju datumov. Ko začnemo vrtati dalje, ugotovimo, da bo treba uporabiti funkciji YEAR() in WEEKNUM(). Nekako logično bi bilo, da bi v polje E2 vpisali funkcijo:

=SUMIFS(B:B;A:A;YEAR(D2);A:A;WEEKNUM(D2))

Težava pa je v tem, da zadeva ne deluje in dobimo rezultat 0. To pa zato, ker funkcija WEEKNUM() ne podpira polj in zato primerjamo leta s celotnim datumom, torej dva različna tipa podatkov, kar daje seveda rezultat 0.

Kaj pa, če bi uporabili bolj določeno funkcijo in podatke definirali tako, da se ujemajo? Formula bi lahko bila:

=SUMIFS(B:B;YEAR(A:A);YEAR(D2);WEEKNUM(A:A);WEEKNUM(D2))

A Excel javi napako in zadeva ne deluje. Zakaj? Kaj je v njej narobe? V takšnih primerih je najbolje, da v razpredelnico začasno dodamo polja delnih rezultatov. Nas zanima, kaj se dogaja s funkcijama YEAR() in WEEKNUM(), ker sta najbolj sumljivi. Vrinimo torej dva nova stolpca (D in E), tako da je zdaj želeni datum v polju G2, želena vsota izdelkov pa v H2. Zdaj v stolpcu D uporabimo funkcijo YEAR(A:A) in preverimo, ali dobimo kot rezultat leto iz datuma v stolpcu A. Zadeva deluje. Kaj pa funkcija WEEKNUM(A:A)? Vpišemo jo v stolpec E in vidimo, da Excel javi napako. V tem grmu torej tiči zajec! Funkcija WEEKNUM() ne podpira polj, v našem primeru stolpca.

Kaj lahko naredimo? Najprej lahko popravimo funkcijo WEEKNUM() tako, da argument zamenjamo z dejansko celico. V celico E2 vpišemo funkcijo WEEKNUM(A2), kjer je A2 zdaj ena sama celica, in ne polje. Vidimo, da je rezultat pravi, in zdaj lahko formulo prekopiramo čez celoten stolpec E. Vidimo, da so številke tednov pravilne.

Zdaj vidimo, da deluje tudi osnovna funkcija:
=SUMIFS(B:B;D:D;YEAR(G2);E:E;WEEKNUM(G2))

Seveda so zdaj oznake malce drugačne, saj smo vstavili dva nova stolpca, v formuli pa se sklicujemo na stolpec D, kjer so zdaj pravilno izračunani tedni.

Obstaja pa še ena rešitev, ki je na voljo le v novejših različicah Excela, torej tistih, ki datoteke shranjujejo v formatu XLSX. V njem lahko našo formulo zapišemo kot:

=SUMIFS(B2:B8;D2:D8;YEAR(G2);E2:E8;WEEKNUM(G2))

In kaj smo naredili? Pravzaprav ne kaj dosti, saj smo le področja, prej označena kot stolpci (B:B, D:D, E:E in tako naprej), zamenjali z dejanskimi obsegi B2:B8, D2:D8 in tako naprej. V tem primeru zna (novejši) Excel ugotoviti, za kaj gre in tudi rezultat je zdaj pravi.

Moj mikro, september – oktober 2014 | Miha Gradišnik |