sábado, 3 de octubre de 2009

Utilizando matrices o arrays en Excel

Un array puede definirse como una colección de elementos. En Excel podríamos decir que un rango de celdas es un array pero también podemos crear nuestros propios arrays o funciones de arrays. Esto último podría definirse como una colección de elementos a los que les aplicamos una formula.

Las funciones de array las podemos utilizar para realizar cálculos complejos que de otra forma requieren ingresar varias formulas en varias celdas. De esta forma podemos reducir el ingreso de formulas como asi también los posibles errores.

Para ingresar una formula array debemos presiones Ctrl + Shift + Enter y no solo la tecla enter. Excel agregará { } en la formula indicando que es una formula array. Si no se presiona Ctrl + Shift + Enter Excel la considerara una formula normal y por lo tanto no funcionará como deseamos.

Si bien las formulas array son muy utiles no son muy utilizadas y una razón es que son mas difcilis de entender ya que una sola celda se realizan varios cálculos y cuando no funciona correctamente es mas difícil seguir los resultados.

Array constantes

En Excel podemos definir un array que esta compuestos de valores constantes y el mismo puede ingresarse en una celda o se puede asignarse a un nombre de la misma forma que lo hacemos para rangos de excel.

Por ejemplo podemos definir un nombre llamado Dias e ingresar : ={"Lunes";"Martes";"Miercoles";"Jueves";"Viernes"}.
Para los arrays constantes es necesario ingresar { }.

Para ingresar el array constante debemos ir a la ficha Formulas y presionar en el botón Definir Nombres



Para obtener un valor particular del array de constantes podemos utilizar la función INDICE de la siguiente forma : =INDICE(Dias, 1) para devolver el primer elemento. El segundo parámetro puede cambiarse para devolver el valor deseado.


Veamos algunos ejemplos de funciones con arrays


Sumar los diez numeros mas grandes de un rango
{=SUMA(K.ESIMO.MAYOR(A1:A100,{1;2;3;4;5;6;7;8;9;10))}

Si tenemos que sumar gran cantidad de numeros podemos usar esta alternativa :

{=SUMA(K.ESIMO.MAYOR(A1:A100,FILA(INDIRECTO("1:10")))}

Para mas información sobre como Excel resuelve esta fórmula puedes hacer clic aqui.

Sumar con condiciones
{=SUMA(SI(A1:A10>0;A1:A10))}

Si bien este resultado puede obtenerse utilizando la función SUMAR.SI con el array podemos definir condiciones mas complejas e incluso varias condiciones.

El tema de los arrays es muy extenso por lo tanto en as próximas semana agregaré otra nota con ejemplos.

No hay comentarios:

Publicar un comentario