… in matrične funkcije drugič …

Predhodno:

Delitev matričnih funkcij

Kot je vidno že iz definicije, se matrične funkcije delijo vsaj na:

  • Funkcije, ki vračajo en razultat
  • Funkcije, ki vračajo več rezultatov

Kako lahko funkcija zapisana v eno celico vrne več rezultatov? Zanimivo vprašanje, ki pa ga bomo pustili za naslednjič sej je očitno težje, kot kakršnakoli funkcija, ki vrača en rezultat 😉

Matrične funkcije, ki vračajo en rezultat

To je torej podverzija matričnih funkcij, ki so zaprte v neko agregatno funkcijo (SUM (seštej), COUNT (štej) ali katero podobno…).

Vse primere danes bomo izvajali na tabeli, ki je prikazana na sliki.

Kot je vidno na sliki imamo dve tabelci števil. Prva je na področju A1 do C3, druga pa F3 do H5.

Ob uporabi matričnih funkcij morate vedeti, da so namesto števil oz. navadnih argumentov v funkciji pač prisotne celotne tabele podatkov. Matrične funkcije torej operirajo nad tabelami podatkov oz. nad matricami (kot smo navajeni iz matematike). Funkcija pa operacije vedno izvaja nad istoležečimi celicami v vseh udeleženih tabelah, kar bo lepo vidno v sledečih primerih.

Oglejmo si funkcijo: {=SUM(A1:A3*F3:F5)}

Opozorilo še enkrat in zadnjič: Matrične funkcije vnašate v Excel s kombinacijo tipk CTRL+SHIFT+ENTER. Gornjo funkcijo torej vnesete tako, da vpišete ‘=SUM’, nato z miško označite A1:A3, pritisnete znak ‘*’ in nato spet z miško F3:F5 in potem še zaklepaj ter CTRL+SHIFT+ENTER.

Ko boste uporabljali matrične funkcije vam bo lažje, če se boste navadili da vsako matrico zavijete v lastne oklepaje (kar izračuna seveda ne spremeni, je pa lažje brati) in dobite takole: {=SUM((A1:A3)*(F3:F5))}

A pustimo sedaj shemantiko in poglejmo, kaj vrne ta funkcija in zakaj vrne to kar vrne. Ko funkcijo izvedete, boste dobili rezultat 198. Excel je ta rezultat dobil tako, da je zmnožil istoležeče celice v obeh matrikah in posamezne zmnožke seštel, torej (A1*F3) + (A2*F4) + (A3*F4), kar pomeni (1*12) + (4*15) + (7*18), kar je 198.

Funkcija {=SUM((A1:C3)*(F3:H5))} vrne 780, kar je seštevek (1*12) + (2*13) + (3*14) + (4*15) + (5*16) + (6*17) + (7*18) + (8*19) + (9*20)…

Seveda pa lahko uporabite tudi druge operatorje; npr: {=SUM((F3:H5)/(A1:C3))}, kar se prevede na (12/1) + (13/2) + (14/3) + (15/4) + (16/5) + (17/6) + (18/7) + (19/8) + (20/9) in da rezultat 40,11865

Pozor ob obliki matrik

Preden končam današnji prispevek, bi vas opozoril še na zelo pomembno »malenkost«… Kakšen rezultat vrne funkcija {=SUM(B1:B3*F3:H3)}?

Glede na zgoraj zapisano lahko razmišljamo takole: = (B1*F3) + (B2*G3) + (B3*H3) oz. =(2*12) + (5*13) + (8 * 14), kar je enako 201… Toda Excel vrne 585!!! Kako hudiča je dobil tako veliko številko?

Ha, hudič se zmeraj skriva v podrobnostih. Jasno sem zapisal, da Excel vedno upošteva istoležeče celice. V našem primeru pa množimo kolono z vrstico in razen prve celice, drugi dve nimata istoležečih celic v drugi matriki. Torej B1 in F3 sta istoležeči, toda B2 pripada celica F4 in ne G3, kot je bilo napačno razmišljanje v prejšnjem odstavku…

Ker Excel v matrikah nima istoležečih celic… jih ustvari in Excel pravzaprav množi sledeči matriki


in tako seveda dobi rezultat 585!

A kot sem povedal že na začetku; matrične funkcije niso mačji kašelj in zahtevajo malce znanja in razmišljanja… A dokler obdelujete enako velike matrike je stvar še dokaj preprosta, zatorej se držite preprostega pravila (vsaj na začetku): »Vedno obdelujte enako velike matrike, ali kolone ali vrstice ali večje tabele – a vedno enako velike!«

Več pa naslednjič…

One thought on “… in matrične funkcije drugič …”

Komentirajte prispevek

This site uses Akismet to reduce spam. Learn how your comment data is processed.