Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas
Mostrando entradas con la etiqueta Excel. Mostrar todas las entradas

miércoles, octubre 30, 2013

Breves notas sobre el uso de matrices en Microsoft Excel (II)

En la primera parte del artículo hablé de como usar operaciones con matrices y dejé algunos enlaces a las operaciones que se podían hacer con las mismas en Excel. En este voy a tratar otras operaciones que pueden realizarse con matrices.

Multiplicación

Dada dos matrices A de dimensión m x k y B de dimensión k x n, el producto de ambas matrices AB es una matriz de dimensión m x n. La función de Excel que realiza el producto de matrices es MMULT. Recibe como parámetros las dos matrices que van a usarse como operadores. En la siguiente captura se ve como multiplicar la matriz A de dimensión 4 x 2 por la matriz B de dimensión 2 x 4, dando como resultado la matriz destino 4 x 4. Hay que tener en cuenta que al introducir la fórmula hay que pulsar CTRL + SHIFT + ENTER en vez de ENTER para informar a Excel que es una operación con matrices.

Multiplicación por una constante

Si queremos multiplicar todos los elementos de una matriz por un determinado número, supuesto que la matriz es m x n, seleccionamos una región en la hoja Excel como destino de la matriz,e introducimos la fórmula que queramos, no olvidando pulsar CTRL + SHIFT + ENTER para señalizar la operación de matrices.

Cálculo de determinantes

La función MDETERM nos permite calcular el determinante de una matriz. Por ejemplo, en la matriz A15:D18, calculamos el determinante, que en este caso es cero.

Inversa

La función para calcular la inversa - en el Excel en español - es MINVERSA, que recibe como parámetros la matriz sobre la cual queremos calcular. Esta matriz inversa no tiene porqué existir siempre, y en caso de que no existe, Excel advertirá del error con un #NUM en la celda donde hayamos introducido la fórmula. La fórmula sólo funciona con matrices cuadradas

Trasponer

En la versión de Excel en español, la fórmula encargada de hacer la transposición es TRANSPONER. Recibe como parámetro la matriz que queremos intercambiar filas y columnas y debemos de tener seleccionado las celdas destino.


martes, octubre 29, 2013

Breves notas sobre el uso de matrices en Microsoft Excel (I)

Ayer necesite realizar algunas operaciones con matrices. Normalmente, cuando tengo necesidad de realizar dichas operaciones, suelo recurrir a Matlab o el clon libre del mismo Octave. Ayer tenía un poco de prisa y como del primero no tengo licencia ni tenía ganas de buscar una versión de evaluación y del segundo me tocaba bajarlo y compilarlo, decidí buscar si Excel tenía algún soporte básico para realizar cálculos con matrices.

Aparte de las operaciones de suma, existen una serie de funciones en Excel que permiten diversos cálculos con matrices: multiplicación (MMULT), trasposición (TRANSPOSE), cálculo de la inversa - si existe - (MINVERSE) o cálculo del determinante (MDETERM)

Sólo hay que tener en cuenta los dos detalles siguientes para usar las fórmulas de matrices correctamente:

  • Definir correctamente la matriz: Una matriz m x n, se define en Excel por las coordenadas del elemento de la esquina superior izquierda a11 y por el elemento de la esquina inferior derecha amn. Por ejemplo en la siguiente captura de pantalla la matriz quedaría definida por el rango A1:C4


  • Cuando se define una fórmula para operar con una matriz, hay que tener seleccionado las celdas que ocupará el destino, introducir la fórmula pero en vez de pulsar enter, pulsar CTRL + SHIFT + ENTER. Esto rodea la fórmula de llaves - que no pueden introducirse normalmente - y le indica a Excel que estamos realizando una operación de matrices.

Para explicar los dos puntos anteriores voy a sumar dos matrices, Matriz A y Matriz B, ambas de tamaño 4 x 3. El resultado es una matriz del mismo tamaño. La matriz A está en las celdas A2:C5 y la matriz B está en las celdas A8:C11. El resultado estará en las celdas A14:C17, las cuales deben de estar seleccionadas, como puede verse en la captura:


Dos matrices A2:C5 y A8:C11, para sumar colocando el resultado en A14:C17, el área resaltada

Con el área destino seleccionada (celdas A14:C17 en la captura anterior), introducimos la fórmula de la suma =A2:C5+A8:C11 en y pulsamos CTRL + SHIFT + ENTER, para indicar que es una operación con matrices. En la siguiente captura puede verse como la tras pulsar la combinación de teclas anterior, la fórmula queda entre llaves, para indicar que es una operación de matrices. Dichas llaves no pueden introducirse manualmente.


Barra de fórmulas tras pulsar CTRL+SHIFT+ENTER

El resultado de la operación de suma se puede ver en la siguiente captura:


Resultado de la operación de suma de matrices

Referencias


miércoles, enero 21, 2009

Notas de Excel y VBA (Visual Basic for Applications)

Introducción

Llevo bastante tiempo que por motivos de trabajo tengo que hacer macros de Excel cada cierto tiempo para tratar la información contenida en las hojas de cálculo. Aunque el Visual Basic1 no es muy santo de mi devoción,he decido crear un post donde voy a ir recogiendo referencias, trozos de código o trucos cuando se usa Visual Basic para aplicaciones con el Excel, para tenernlo como futura referencia Iré diviendo el post en función del tamaño que tenga, para que sea manejable. Mi idea es ir poniendo pequeñas descripciones de lo que quiero hacer y la manera de hacerlo. Esto no pretende ser un curso de VBA para Excel, sino simplemente una referencia. En la medida de lo posible, lo probaré en Excel 2003 que es el que utilizo en el trabajo y Excel 2004 para Mac.

Evitar el parpadeo cuando se modifica desde una macro una hoja de cálculo

A veces desde una macro estamos recorriendo parte de las hojas de cálculo y vamos modificando los datos de acuerdo con nuestros quiterios. Podemos ver un molesto parpadeo conforme se van modificando las celdas. Hay una manera muy sencilla de evitarlo, y consiste en modificar un flag del objeto Application:
Application.ScreenUpdating = False
...
Application.ScreenUpdating = True
El código que se ejecuta entre esas dos instrucciones no actualiza la pantalla, ganando velocidad y evitando el molesto parpadeo que puede producirse.

Referencias

  1. Como encontrar la documentación sobre los modelos de objetos de Excel

Notas

1 Reconozco que si tuviera un poco más de tiempo y estuviera mejor integrado, usaría el Python como lenguaje de script para procesar la información. Aunque es posible su uso a través de las interfaces COM que exporta Excel, resulta muy engorroso.

Technorati Tags: ,