Fórmulas matriciales (fórmulas de matriz) en OpenOffice Calc
Una fórmula matricial (o fórmula de matriz) permite evaluar los distintos valores de un área de celdas ejecutando varias operaciones, y devolver un único resultado o varios resultados.Entenderemos la matriz como un conjunto de celdas o valores sobre los que se trabaja como si fuera un grupo. Será unidimensional si el rango de celdas es n x 1 o 1 x n. Será bidimensional si el rango de celdas es n x m.
Si la fórmula de matriz devuelve un único resultado la formularemos en una sola celda. Si devuelve varios resultados, deberemos seleccionar previamente el rango adecuado y la formularemos para el rango.
Para indicarle a OpenOffice Calc que deseamos utilizar una fórmula de matriz deberemos finalizar el modo edición de fórmula pulsando la combinación de teclasVamos a ver algunos ejemplos en los que pueda ser interesante utilizar fórmulas matriciales.
Ejemplo 1 de fórmula matricial
En la siguiente hoja de cálculo
queremos calcular
((B2+B3)*40) + ((D2+D3)*90) - (F2+F3)
Podemos hacerlo utilizando la función SUMA y la propiedad fórmulas matriz. Sigue el siguiente guión:
- Clic sobre Suma
- Selecciona el rango B2:B3; teclea *40
- Manteniendo pulsada la tecla Ctrlselecciona el rango D2:D3; suelta la teclaCtrly teclea *90
- Manteniendo pulsada la tecla Ctrlselecciona el rango F2:F3; suelta la teclaCtrly teclea *-1
- Pulsa la combinación de teclas Mayúsculas + Ctrl + Intro
Calc escribirá la siguiente fórmula en la celda:
{=SUMA(B2:B3*40;D2:D3*90;F2:F3*-1)}
Si duda, este ejemplo se podría haber resuelto sin utilizar fórmulas de matriz, y lo hemos insertado para facilitar el aprendizaje de esta potente herramienta.
¿Que ha hecho Calc? Ha multiplicado cada uno de los elementos del rango B2:B3 por 40; los del rango D2:D3 por 90; los del rango F2:F3 por -1, con lo que les cambiamos el signo. Finalmente, la función SUMA ha sumado los rangos específicados con los nuevos valores calculados.
El uso de fórmulas de matriz abre un abanico muy amplio de posibilidades, simplificando muchas operaciones a realizar en una hoja de cálculo. Veamos otro ejemplo:
Ejemplo 2 de fórmula matricial
En la siguiente hoja de cálculo queremos que en F7 se muestre la suma de los importes del rango C2:C17 pero solamente para aquellas facturas cuyas fechas estén comprendidas en el rango delimitado por F5 y F6.
El guión a seguir es el siguiente:
- Sitúate en F7
- Clic sobre Sumar
- Teclea (; selecciona el rango B2:B17; teclea >= ; clic sobre F5; teclea )*
- Teclea (; selecciona el rango B2:B17; teclea <= ; clic sobre F6; teclea )*
- Selecciona el rango C2:C17
- Pulsa la combinación de teclas Mayúsculas + Ctrl + Intro
La fórmula obtenida será:
{=SUMA((B2:B17>=F5)*(B2:B17<=F6)*C2:C17)}
¿Que ha hecho Calc? Calc evalúa para cada celda del rango la fórmula indicada, y los resultados los vemos en la siguiente tabla, donde se estudian los resultados para cada paréntesis; para simplificar hemos llamado P1 al primer paréntesis y P2 al segundo:
Celdas | Fecha | (B2:B17>=F5) | (B2:B17<=F6) | P1*P2*C2:C17 | Valor sumado |
---|---|---|---|---|---|
B2 a B4 | 01/10/10 | FALSO | VERDADERO | 0*1*1200 | 0 |
B5 a B7 | 02/10/10 | VERDADERO | VERDADERO | 1*1*1400 | 1400 |
B8 a B10 | 03/10/10 | VERDADERO | VERDADERO | 1*1*1100 | 1100 |
B11 a B13 | 04/10/10 | VERDADERO | VERDADERO | 1*1*1200 | 1200 |
B14 a B16 | 05/10/10 | VERDADERO | FALSO | 1*0*1400 | 0 |
B17 | 30/12/99 | VERDADERO | FALSO | 1*0*1100 | 0 |
Al evaluar cada elemento de la matriz, el primer y el segundo paréntesis pueden ser VERDADERO (uno) o FALSO (cero) según cumplan o no la condición. Este valor se multiplica por el importe. Por lo tanto, para aquellas celdas del rango que no están entre las fechas indicadas devuelven FALSO, o lo que es lo mismo, cero. Al multiplicar el importe por cero, no se integrará en la suma.
En estas fórmulas de matriz hemos utilizado matrices formadas por rangos de celdas. Pero también podemos introducir matrices de valores constantes.
Ejemplo 3 de fórmula matricial
Para introducir matrices de valores constantes éstos deberán introducirse entre llaves {}, separando los valores horizontales por un punto y coma, y los verticales por una barra “|”, como muestra el ejemplo.