Ja havia tractat abans el tema de les fórmules matricials, però no n'estava content. A més, la sintaxi que vaig explicar no era la més entenedora visualment, per tant aquesta entrada és un aclariment i extensió de la primera.
Repassem els aspectes clau:
- Les fórmules matricials són molt potents i permeten analitzar taules amb condicions complexes.
- Les fórmules matricials consumeixen molts recursos de l'ordinador, s'han d'usar amb moderació i quan no hi hagi una fòrmula nadiua d'Excel que serveixi.
- No es pot avaluar una columna sencera tipus "A:B", s'ha de definir un rang amb un límit definit de files com "A1:B3000".
- Les fórmules matricials poden avaluar matrius verticals (fila a fila) o horitzontals (columna a columna).
- Per a que una fórmula s'avalui de forma matricial s'ha d'introduïr prement "Ctrl"+"Majúscules"+"Enter".
Exemple: (veritat, fals, fals, veritat, fals) i (fals, veritat, fals, veritat, fals) = (fals, fals, fals, veritat, fals)Cal remarcar que l'ordre de les condicions és important, ja que en una condició tipus "i" cada condició actúa com a filtre de les següents.
Exemple: (veritat, fals, fals, veritat, fals) o (fals, veritat, fals, veritat, fals) = (veritat, veritat, fals, veritat, fals)Una condició tipus "o" fa que l'Excel faci una suma de les matrius.
Normalment posarem diverses condicions comparant-les amb una referència:
- > més gran que
- < menor que
- = igual que
- >= més gran o igual que
- <= més petit o igual que
- <> diferent que
- * operador "i"
- + operador "o"
- { } com a matriu de condicions "o" (separador ; per files i \ per columnes)
{=FÓRMULA(SI(((condició 1a)+(condició 1b))*(condició 2);(rang valors)))}Es llegeix: si es compleix la condició 1a o la condició 1b i també es compleix la condició 2 llavors aplica la fórmula sobre el rang de valors. Les dues fórmules són iguals si les dades estan en columnes i s'avalua fila a fila.
{=FÓRMULA(SI((condició={1a ; 1b})*(condició 2);(rang valors)))}
Exemple real de fórmula:L'avantatge de les fórmules matricials també resideix en que no només permeten fer sumes complexes sinó que admet altres funcions com promitg, totes les mitjanes, mínim, màxim, comptar, k èssim major o menor, percentil i encara me'n dec deixar alguna.
{=SUMA(SI((B5:F5="b")*(B6:F6={"blau"\"vermell"});B8:F8))}
Existeix un cas particular per calcular sumes matricials on ens podem estalviar el condicional:
{=SUMA((condició={1a ; 1b})*(condició 2)*(rang valors))}A la primera fórmula sumem els valors del rang de valors i a la segona comptem els valors diferents a 0.
{=SUMA((condició={1a ; 1b})*(condició 2)*(rang valors<>0))}
Fitxer amb exemples: Fórmules matricials II
---------------------------------------------
Deixa un comentari
Publica un comentari