Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Este Curso de Excel Avanzado esta destinado a personas que ya poseen un determinado dominio de esta aplicacin, pero que an no han logrado utilizar el mismo a una mayor potencialidad, en lo referente a la utilizacin de sus funciones y a la automatizacin de tareas, con la aplicacin de Visual Basic. Se trata de un cursillo prctico, donde se seleccionan algunas de las principales funciones de Excel, las ms necesarias, para la elaboracin de aplicaciones, as como los principales cdigos de Visual Basic para su automatizacin. Esperamos sea de utilidad para usted.
CONTENIDO 1. FUNCIONES DE HOJAS DE TRABAJO 2. CODIGOS DE VIUAL BASIC. MACROS 3. APLICACIONES PRACTICAS
La potencialidad de Excel es virtualmente inalcanzable, por mucho que se avance en su aplicacin. Su potencialidad va mucho ms all de las necesidades reales, en muchsimas de las aplicaciones diseadas. Por tal motivo, no resulta necesario aspirar a dominar toda la capacidad del mismo, sino, ir avan zando en su dominio, poco a poco, en la medida de lo que se va demandando para resolver un problema dado. De aqu que, a partir de cierta experiencia en su aplicacin a determinados problemas, fundamen talmente de gestin econmica, se hayan seleccionados slo aquellos tpicos, ms acordes con este fin.
Se muestran ejemplos prcticos de algunas Aplicaciones, utilizndo funciones avanzadas directamente en la Hoja de Trabajo, y de Macros con cdigos de Visual Basic. Se ofertan 3 tpicos en el Men en el orden adecuado, y para su visualizacin y estudio basta con hacer " click " en el deseado.
TERCERA PARTE
APLICACIONES PRACTICAS De Funciones en la Hoja de Trabajo De Macros con Visual Basic
Se muestran ejemplos prcticos de algunas Aplicaciones, utilizndo funciones avanzadas directamente en la Hoja de Trabajo, y de Macros con cdigos de Visual Basic. Se ofertan 2 tpicos en el Men en el orden adecuado, y para su visualizacin y estudio basta con hacer " click " en el deseado.
Ejemplo 1.
Muy frecuentemente usted requiere elaborar informacin correspondiente a varios productos para diferentes destinos. Digamos que requiere controlar 2 productos, Producto1 y Producto2, para las 15 provincias del pas por meses, y se requiere conocer el consolidado hasta la fecha por provincia y total pas. A la vez, requiere enviar la informacin a cada provincia. Cuando el dominio de Excel es limitado, por lo general, el problema se enfoca de la forma siguiente: 1. Se elabora una tabla para cada provincia como la que sigue: Provincia: P. Rio Prod1 Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre Total 2 3 5 7 10 Prod2 1 7 5 4 2 Lo que implicara un total de 15 tablas independientes como la que se muestra, y otra tabla, la nmero 16, para el consolidado. Lo anterior implica, entre otras cosas: . La incomodidad de localizar cada tabla, mediante las barras vertical y horizontal, lo cual toma tiempo. . Introducir informacin en cada una de las 15 tablas. . Imprimir cada tabla con distinta referencia de localizacin. . Ocupar mucho espacio en la hoja de trabajo. 27 19 Todo lo anterior con mtodos convencionales de Excel.
Cuando se tiene un mayor dominio de las potencialidades de Excel, el problema se enfoca de forma muy diferente, es decir, se busca simplificacin, rapidez y ahorro de tiempo de trabajo. Despus de haber estudiado y aprendido algo de Excel avanzado, seguramente que usted enfocara la solucin del problema de la forma siguiente: 1. Diseara una tabla general de entrada de Datos con el siguiente formato: Enero Prod.1 Prod.2 P.Rio Habana C.Habana Matanzas V.Clara Cfgos. S.Spiritus C.Avila Camag. Tunas Holgun Granma Stgo. Gtmo. I.Juv. Total C.Avila 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 120.0 8 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 135.0 9 Febrero Prod.1 Prod.2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 150.0 10 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 165.0 11 Marzo Prod.1 Prod.2 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 180.0 12 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 195.0 13 Abril Prod.1 Prod.2 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 210.0 14 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 225.0 15 Mayo Prod.1 Prod.2 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 240.0 16 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 255.0 17 Junio Prod.1 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 270.0 18
Esta tabla, con un ejemplo numrico, permite centralizar la entrada de datos y obtener directamente los consolidados por territorio y pas. De las frmulas en la fila 65 hablaremos ms adelante. Claro est, se requiere contar con una tabla por provincia para su impresin y entrega a cada territorio, por lo que hasta aqu, el problema no esta resuelto.
Si ahora usted hace las 15 tablas y las vincula a la tabla central antes sealada, llenara automticamente cada una de las tablas y slo restara imprimir cada una de ellas. Pero lo anterior, aunque mejor que la idea original, cuando sabiamos poco de las potencialidades de Excel, no satisface nuestra expectativa, ya que seguiriamos utilizando 16 tablas. Vamos a resolver el problema de la siguiente forma: 2.Hacemos una sola tabla para la provincia: No. Prov. 8 Prod1 Enero Febrero Marzo Abril Mayo Junio Julio Agosto Septiembre Octubre Noviembre Diciembre Total 8 10 12 0 0 0 0 0 0 0 0 0 30 No. Mes 3 Prod2 9 11 13 0 0 0 0 0 0 0 0 0 33 De la tabla general cargamos una provincia, imprimimos atomticamente y despus cargamos la otra, etc. 3. Para ello vamos a utilizar la Funcin CHOOSE en la celda C83. De manera que se muestre el nombre de la provincia con slo poner su nmero en la celda D82, del 1 al 15. Tambin utilizamos CHOOSE en la celda D82, en combi nacin con E82, donde ponemos el nmero del mes del 1 al 12. 4. En la fila 65 de la tabla general de entrada de datos, extraemos la informacin de la provincia seleccionda en d82, utilizando CHOOSE. 5. En la tabla para la provincia extraemos los datos de la fila 65, mes a mes, hasta el mes dado en la celda E82, utilizando la funcin IF.
Ejemplo 2.
Muchas veces puede requerir extraer informacin de un fichero, con solo teclear determinados cdigos que representan una entidad, una tarifa , una direccin, etc.
Y requiere extraer informacin en cualquier hoja de trabajo de Excel con slo brindar el cdigo. Para ello utilizamos la funcin VLOOKUP y el valor de bsqueda (vlookup value) sera el cdigo, por ejemplo: CODIGO ENT1 ORGAN. MINBAS PROV. P.Rio MUNIC. Guanes
Cambie el cdigo aqu.
105100 ENT2
Si el Registro anterior se encontrara en Sheet3, D35:H42, la frmula sera: CODIGO ENT1 ORGAN. MINBAS PROV. P.Rio MUNIC. Guanes
Cambie el cdigo aqu.
105100 ENT2
Ejemplo 3.
Veamos otra forma de extraer informacin de una tabla, utilizando la funcin OFFSET. Consideremos la tabla siguiente: Entidad Prod1 Prod2 Prod3 Valor
1 4 7 10
2 5 8 11
3 6 9 12
En la columna Valor se suma el valor total para los tres productos de acuerdo a los precios de la tabla en J1:l5, de Sheet3. Ahora bien, se desea tener una tabla con la Base de Clculo de cada Entidad. Para ello, se elabora Haga Pruebas aqu. la siguiente tabla: Entidad: Ent2 145 Cantidad 4 5 6 15
Introduzca los nmeros de las filas del 144 al 147.
Precio 10 15 20
Valor 40 75 120 235 En las celdas D159:D161, se utiliza la funcin OFFSET, basndo el Offset en C1, D1 y E1 y utilizando el nmero de la filas hacia abajo, igual al de la fila donde se encuentra la entidad correspondiente en la tabla, restndole 1.
Ejemplo 4.
Se registran las facturas de ventas en pesos de un producto, de acuerdo a la fecha de realizadas. Si la venta se realiz en los primeros 6 meses del ao, la venta final se eleva al cuadrado, de los contrario, se mantiene normal, pero en todos los casos se redondea a un nmero entero. VENTA FINAL ENTERO 231.0 660.5 1482.3 4.3 25.9 231.0 660.0 1482.0 4.0 26.0
MES 1 1 2 9 9
5-Dec-00 23-Dec-00
12 12
2.8 23.0
2.8 23.0
3.0 23.0
En la tabla slo se introducen la fecha y el monto de la venta. Calculndose automticamente el No. del Mes, la venta final y el redondeo, mediante las funciones correspondientes, que puede observar al seleccionar estas. celdas en azul. Se utilizan las funciones MES, IF, POWER y ROUND. Para fines del control, se requiere conocer: 1.Cuantas Facturas de emitieron en un mes dado 2 MES 12
=COUNTIF(C175:C181,K188:K189 ). En K188:K189 se expresa el criterio. Cambie el dato de K189 y vea el cambio de H189.
25.8
MES 12
=SUMIF(C175:C181,K194:K195,E 175:E181). En K194:K195 se expresa el criterio. Cambie el dato de K189 y vea el cambio de H195.
3.La suma de la venta final redondeada para diferentes criterios. MES - A partir de Mayo - Hasta Septiembre - Para Ventas mayores de 500 56 2403 2142 >=5 MES <=9 ENTERO >500
Hasta aqu algunos ejemplos de aplicacin de funciones, veamos ahora ejemplos de aplicaciones utilizando Macros con cdigos de Visual Basic.
Ejemplo 2
Vamos a elaborar una Macro un poco ms compleja. Ubicamos a solicitud un valor aleatorio en la celda D250. Si el nmero introducido es menor que el contenido en la celda C250, copiarlo en la celda F250, si no borrarlo.
Celda C250
Celda C250
Sub EjemMacro2() Range("d250") = Application.InputBox(Prompt:="Introduzca Dato", Title:="Solicitud de Informacin", Type:=1) a = Range("C250").Value b = Range("D250").Value If b < a Then Range("D250").Copy Destination:=Range("F250") Else Range("D250").Delete End If End Sub Como puede apreciarse antes de comparar los valores en las celdas D250 y C250, se declaran como variables a y b. Las celdas como tal no pueden compararse, If D250<C250, no funciona. Aqu se utilizan los Mtodos Copy, Delete e InputBox y la propiedad Value. Los objetos de trabajo son los rangos D250, C250, F250. Incluye la comparacin opcional If Then Else, que cumplimenta una u otra sentencia en dependencia del resultado de la comparacin entre a y b.
Ejemplo 3
Con Macros se puede realizar de forma automtica todo lo que usted sea capaz de hacer manualmente en Excel y todo lo que usted no pudiera hacer manualmente aunque Excel lo propiciara, lo cual esta en funcin de la complejidad de la operacin y el tiempo necesario para ello. Digamos por ejemplo que usted requiere sumarle a un valor numrico contenido en un celda una constante repetidamente hasta alcanzar un nmero dado. Por ejemplo, en la celda D285 existe el nmero 5 y usted necesita irle sumando la unidad hasta alcanzar el valor en E285 que es igual a 1000, depositndolo en la misma celda D285.
E285
1000
1000
Antes de ejecutar el Macro, teclee en D285 un 5 u otro nmero menor que el contenido en E285.
Antes de ejecutar el Macro, teclee en D285 un 5 u otro nmero menor que el contenido en E285.
Realizar esta operacin, manualmente en Excel es muy voluminosa y le tomara un tiempo tal que se aburrira, sino se afecta mentalmente. Sin embargo con una Macro es muy sencillo: Sub EjemMacro3() a = Range("E285").Value b = Range("D285").Value counter = 0 myNum = b Do Until myNum = a myNum = myNum + 1 counter = counter + 1 Range("d285").Value = myNum If myNum = a Then Exit Do Loop End Sub
Total Prod.1 Prod.2 144.0 156.0 168.0 180.0 192.0 204.0 216.0 228.0 240.0 252.0 264.0 276.0 288.0 300.0 312.0 3420.0 156.0 168.0 179.0 191.0 203.0 215.0 227.0 239.0 251.0 263.0 275.0 287.0 299.0 311.0 323.0 3587.0
SEGUNDA PARTE
CODIGOS DE VISUAL BASIC. MACROS Definiciones y Ejemplos de Objeto, Propiedad y Mtodo Como grabar una Macro Como hacer referencia a Celdas y Rangos Ejemplos de Cdigos ms usados de Visual Basic Como insertar Botones y otros Controles
Se muestran ejemplos prcticos de algunos de los muchos usos en la aplicacin de Macros en Viusal Basic, los cuales se analizarn de forma ms especfica en la Parte correspondiente a las Aplicaciones. Se ofertan 4 tpicos en el Men en el orden adecuado, y para su visualizacin y estudio basta con hacer " click " en el deseado.
Como insertar Botones para Macros u otros usos Agregar Botones, casillas de verificacin y otros controles.
A las hojas de trabajo de Excel pueden agregrsele botones, casillas de verificacin, y otros tipos de controles, que facilitan opciones al usuario o bien ejecutan macros que automatzan una tarea. Mediante la barra de Herramientas FORMS, pueden crearse controles como un botn, un grupo de casillas de verificacin, un cuadro de listas o una barra de desplazamiento. Los controles disponibles en la barra de Herramientas CONTROL TOOLBOX, se denominan Controles ActiveX. Estos controles pueden agregarse a las hojas de trabajo; se escribir un cdigo de Macro que se almacenar con el propio control y que se ejecutar al hacer click en el mismo. Por tratarse de una barra de Herramientas ms sencilla, y que cumple las funciones de este Cursillo, slo estudiaremos la barra de Herramientas FORMS, que puede activarse en View - Toolbars - Forms. Activmos la barra de Herramientas antes sealada, para ello haga click en View - Toolbars - Forms. Desproteja temporalmente la hoja de trabajo. Observe la barra de Herramientas y seale con el ratn las diferentes figuras all representadas: De izquierda a derecha y de arriba a abajo, slo las que resaltan: Label Group Box Button Check Box Option Box Para aadir texto a una hoja de trabajo para suministrar informacin sobre un control o la hoja de trabajo. Un recuadro con ttulo que puede agrupar controles relacionados, como Option Check Boxes. Un botn que ejecuta una mcro al presionarlo. Un recuadro que activa o desactiva. Puede usar ms de una Check Box en una hoja o un grupo al mismo tiempo. Un botn que selecciona una de un grupo de opciones contenidas en un group box.
Un recuadro que contiene un listado de items. Es una List Box que se despliega hacia abajo. Un control que se desliza a travs de una lista de valores cuando usted hace click en la flecha Un botn con flechas arriba y abajo que puede ser vinculado a una celda para reducir o incrementar un valor.
De los controles anteriores slo vamos a estudiar los ms importantes: (Proteja la hoja de nuevo por Favor!). Todos estos controles se dibujan en la hoja de trabajo, haciendo click con el botn izquierdo del ratn en el control deseado de la barra de herramientas; en ese momento el puntero del ratn se convierte en una +. Entonces seale con el puntero la esquina superior izquierda donde quiere comenzar a dibujar el control, y manteniendo el botn izquierdo del ratn presionado, arrastre hacia la derecha y abajo, hasta lograr el tamao deseado.
Button
Se muestra un Botn diseado de la forma arriba descrita. Cuando ha terminado de arrastrar y libere el botn del mouse, inmediatamente se abre una hoja de dilogo llamada Assig Macro para que usted escoja un macro de los existentes y se lo asigne al botn. Pero por el momento no lo haremos y por tanto, cuando se abra la hoja de dialogo, haga click en cancelar. El botn aparece con un ttulo default que usted puede cambiar, lo que se explicar ms adelante. Para eliminar el botn basta con editarlo y apretar la tecla Delete. Para editarlo, haga clik en el botn y luego apriete Delete, si hace click con el ratn derecho, saldr una hoja de dilogo, que usted cerrar por el momento con ESC y entonces, con el botn editado, apriete la tecla Delete. Antes de continuar abra una hoja de trabajo en un nuevo libro(ya que esta hoja est protegida) y practque lo antes expuesto slo con Button. Si ya practic hasta aqu, podemos continuar:
Para escribir texto dentro del botn, con la hoja desprotegida, edite el botn y haga click dentro de l y escriba el texto, el cual puede formatear de la forma usual, seleccionndolo y utilizando las herramientas normales de Excel. Puede modificar el tamao del botn, editndolo y utilizando el ratn para arrastrar o mover de lugar. Al editar el botn le sale una hoja de dilogo, que hasta el momento hemos cerrado con ESC, que no es ms que el Men contextual con los comandos: Cut, Copy, Paste, Edit Text, Grouping, Order, Assign Macro y Format Control. Con estos comandos usted puede realizar todas las acciones con el botn, incluyendo las que ya explicamos, utilizando mtodos prcticos conocidos. Con Cut - Paste, puede cambiar de posicin el botn; con Copy - Paste, puede copiar el botn en otro lugar de la hoja o en otra hoja o libro; con Edit Text, puede escribir un texto dentro del botn o modificar el actual; con Order puede traer el botn al frente, detrs, etc, suponiendo que est montado en otro objeto insertado; con Assign Macro, puede asignarle una macro, que despus ejecutar automticamente al apretar el botn y con Format Control puede formatear el botn (letras, medidas, propiedades, alineacin, proteccin,etc.). Sobre los comandos anteriores, slo nos referiremos a la proteccin del botn. Usted puede eliminar la proteccin del botn, pero en este caso, con la hoja de trabajo protegida o n, al hacer click sobre el botn slo lograr editarlo con el ratn izquierdo, y editarlo, abriendo el men contextual con el derecho, es decir no ejecutara un macro asignado. El botn ms abajo mostrado esta desprotegido, por lo que usted puede manipularlo. Se le ha nombrado Ejemplo. Editndolo con el ratn izquierdo, puede cambiar el texto, agrandarlo o reducirlo. Con el ratn derecho, puede abrir el men contextual y hacer click en Format Control y observar el formato que posee. Se le invita ahora a manipular el botn, con el nico ruego de que no lo proteja.
Check Box
Para su diseo e insersin en la hoja de trabajo, se prodece de la misma forma que en el caso de BUTTON. Ms abajo se muestra una Check Box insertada que se ha nombrado Ejemplo. Cuando usted hace click en ella la activa o desactiva. Haga la prueba!.
Ejemplo
C113
Al abrir el Men contextual, notar que puede asignrsele una Macro y al abrir el Format Control aparece en la hoja de dilogo una Cell Link: La celda vnculo (Cell Link), no es ms que la celda donde se reflejar el estado de la Check Box. Hemos vinculado la Check Box con la celda C113. Al hacer click en el recuadro de la Check Box y activarla (aparece el chesmark), en la celda c113 aparece TRUE, lo que indica que est activada, de lo contrario aparece FALSE.
FALSE
Este tipo de control puede utilizarse para ejecutar un clculo o una frmula en dependencia de la variante seleccio nada.
Option Button
Este control tiene similares funciones que la check box, por lo que slo veremos un ejemplo de como aplicar este tipo de control. Por ejemplo. Vamos a contar con dos option button, para seleccionar la variante 1 o la 2, y la cell link, para ambas check box ser la celda D133. En las celdas F132 y F133, escribimos las cifras 150 y 120 respectivamente; y en la celda F134 escribimos la frmula: =IF(D133=1,F132*F133, F32/F133).
D133
Variante 1
2
Variante 2
Si marcamos el option button de la variante 1 en F132 se obtiene el resultado de multiplicar 150*120, si marcamos la variante 2, estas ci fras se dividen. Haga la Prueba!.
List Box
Se trata de un cuadro que contiene una lista de items, que pueden ser seleccionados reflejando el resultado de la seleccin en una celda vnculo (Cell Link). Las propiedades de la List Box, que pueden verse en Format Control, Control incluye:
E147 Fuel Oil Diesel Kerosina Turbo G.L.P. Nafta Solvente Asfalto Crudo G.Motor
D149
Fuel Oil Diesel 2 Kerosina Turbo G.L.P. Nafta Solvente Asfalto Crudo G.Motor
Input Range, lista de valores en una hoja de trabajo. Cell Link, de la cual ya comentamos. Selection Type, que indica como los items pueden ser seleccionados en la lista. Si usa Multi o Extend, la cell link es ignorada. La lista de items la ubicamos en E147:E156 y la Cell Link en D149. Observe que en la misma medida que usted selecciona un item en la List Box, en la Celda D149, aparece el nmero de orden de la misma, es decir, su localizacin en la lista. Haga la Prueba!.
Combo Box
Es similar a la List Box, pero difiere slo en que, esta despliega la lista hacia abajo cuando se hace click en ella. Este control incluye adicionalmente un Drop down lines, que indica la cantidad de lineas a desplegar hacia abajo. En nuestro ejemplo pusimos solo 8, aunque con el Scroll Bar puede verlas todas. En este caso utilizamos el mismo input range y cell link del ejemplo anterior, por lo que el resultado debe verlo arriba. Haga la Prueba!.
Diesel
Scroll Bar
Es un control que corre a travs de una lista de valores cuando se hace click en la flecha
C184
Current Value, que representa la posicin relativa de la barra en la Scroll Box, es decir, el contenido de la celda C184. Minimum Value y Maximum Value, son los valores mnimos y mximos de la posicin de la Scroll Bar, en nuestro caso 1 y 100. Increment Change, es el monto del incremento en que la barra se mueve, en nuestro caso es 1, es decir, va incrementando la unidad.Pudiera ser de 5 en 5, etc. Page Change, es el incremento cuando usted hace click en el espacio entre la Scroll Box y una de las flechas. En nuestro caso es igual a 10. Cell Link, donde aparece el valor corriente. Haga la Prueba!.
Spinner
Las propiedades de control de un botn Spinner son las mismas que las de una Scroll Bar, slo que no posee la propiedad Page Change.
Haga la Prueba!.
Finalizaremos este tema con un ejemplo prctico de como utilizar estos controles. La funcin PMT calcula el pago por un prstamo, basado en montos constantes y un rate de inters constante.
Syntax PMT(rate,nper,pv,fv,type) Rate es el rate de inters por el prstamo. Nper es el nmero total de pagos por el prstamo.
Pv es el valor actual, conocido como el principal. Fv es el valor futuro, si es omitido se asume como cero. Type es 0 o 1 que indica cuando los pagos se liquidan. 0 u omitido, el pago se efectua al inicio del periodo. 1 , el pago se efectua al final del periodo. Ejemplo. Para los diferentes tipos de coches, se quiere determinar el pago mensual, en diferentes periodos de liquidacin total, a diferentes % de inters. Coche 91 Mercury Sable 88 Nissan Pulsar NX 90 Toyota Camry 88 Dodge Lancer ES 87 BMW 325 91 Chew Camaro 88 Mazda MX6 Precio 1050000 635000 895000 629900 795900 679600 850000 La frmula a utilizar ser: =PMT(rate,Nper,Pv) Vamos a utilizar controles para automatizar el anlisis, de forma prctica y sencilla:
90 Toyota Camry
3 3
895000 0.15 3 ($31,025.47) Hemos utilizado tres controles: - Una List Box para seleccionar el tipo de carro. - Una Scroll Bar para seleccionar el inters. - Y una Spinner para seleccionar los aos de plazo. Haga la Prueba!.
15
Para editar la macro que acaba de grabar y poder ver los cdigos grabados, haga lo siguiente: 1. Click Herramientas (Tools), seale Macro y haga click en Macros... a la derecha.
2. Haga click en el nombre de la macro que acaba de grabar primero y en botn Edit despus. 3. Inmediatamente aparecer el Visual Basic Editor y en el, un Mdulo, con la macro impresa. Las Macros se registran en hojas especiales nombradas Mdulos, que se almacenan en el propio libro de trabajo activo, si fueron grabadas en esta localizacin. Estos mdulos pueden ser localizados a travs del Visual Basic Editor, en el Men Tools - Macro - Visual Basic Editor. Una vez, all, vuelva a hacer click en Tools - Macros.. Y seleccione el nombre de la macro deseada. Para escribir una Macro directamente, ubquese en el Visual Basic Editor e inserte un Mdulo nuevo, en Insert - Module. Para salir nuevamente a la hoja de trabajo de Excel, cierre el o los mdulos abier tos, click File y Close and Return to Microsoft Excel. A modo de ejemplo vamos a grabar una Macro sencilla, para lo cual usted deber seguir las instrucciones siguientes, pero antes desproteja la hoja: 1.Haga click en Tools, seale Macro y haga click en Record New Macro 2.Escriba en el cuadro Macro name la palabra MacroPrueba y orpima el botn OK.. 3.Inmediatamente apaecer la pequea barra herramienta Stop Record, no haga nada por el momento con ella. 4.Escriba en la celda E62 la palabra Titulo y apriete Enter. 5.Vuelva a seleccionar E62 y seleccione el botn Align Right, vaya al botn Font Color y seleccione el azul. 6.Haga click en Stop Record, para detener la grabacin.
Celda E62
La macro grabada es exactamente la siguiente (puede verla si desea, mediante el procedimiento anterior): Sub MacroPrueba() ' ' MacroPrueba Macro Macro recorded 1/11/00 by M31.. ' ' Nombre de la Macro
Range("E62").Select ActiveCell.FormulaR1C1 = "Titulo" Range("E62").Select With Selection .HorizontalAlignment = xlRight .VerticalAlignment = xlBottom .WrapText = False .Orientation = 0 .ShrinkToFit = False .MergeCells = False End With Selection.Font.ColorIndex = 5 End Sub El Macro puede reducirse a: Sub MacroPrueba() Range("E62").Select ActiveCell.FormulaR1C1 = "Titulo" Range("E62").Select With Selection .HorizontalAlignment = xlRight .Font.ColorIndex = 5 End With End Sub
Selecciona E62 Teclea Titulo y Enter Selecciona E62 de nuevo Alineacin a la derecha Estos son cdigos innecesarios que se intro ducen automticamente al grabar la macro, y que pueden ser eliminados, sin ninguna alte racin de la accin ejecutada, porque son . defaults. Colorea de azul el texto
Si desea puede ejecutar el Macro para comprobar su funcionamiento, para ello: 1.Borre la celda E62. Mantenga el cursor en un lugar donde E62 este visible, para que pueda ver como funciona la Macro. 2.Haga click en Tools, seale Macro, haga click a la derecha en Macros, seleccione MacroPrueba y aprite el botn Run. Como puede apreciar toda Macro o Procedimiento (Procedure), comienza con la palaba Sub, seguida del nombre de la macro y dos parentesis (). Dentro de estos parentesis pueden haber argumentos, pero ahora no se entrar en este aspecto. Y termina con las palabras End Sub; entre Sub y End Sub, se escriben los
cdigos o instrucciones que deben ser ejecutadas. Si grab MacroPrueba, esta se encuentra en un mdulo de este libro. Si quiere repetir el procedimiento otra vez, primero tendra que borrarla, en Tools, Macro Macros, MacroPrueba, Delete, Yes. Si ya concluy el estudio vuelva a proteger la hoja.
4 3 2 1
0 0 0 0
1 1 1 1
Borre C7:C10. Al apretar botn, copia contenido de B7:B10 en C7. En este caso copia frmulas.
Range("B7:B10").Copy Destination:=Range("C7")
IDEM anterior, pero pega slo valores absolutos, no frmulas
Range("B7:B10").Copy Range("C7").PasteSpecial Paste:=xlPasteValues, operation:=xlPasteSpecialOperationAdd Application.CutCopyMode = False Teclee nmeros en Add, puede ser substituido por: Subtract, Multiply, Divide.
LIMPIAR (ClearContents)
Range("F31:F34").ClearContents
F31
For Each c In Worksheets("EjCVB").Range("B51:E56") If c.Value < 0.001 Then c.Value = 0 End If Next c
Celda B50
En todas o algunas de las celdas A51:D56, intro un nmero menor que 0.001. En las celdas con valores inferior a 0.001 pone el valor 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0 0 0
Range("D63") = Application.InputBox(Prompt:="Intoduzca el numero", Title:="Entrada de Datos", Type:=1) Range("E63") = Application.InputBox(Prompt:="Introduzca la palabra", Title:="Actualizar Dias del Mes", Type:=2)
Celda E63 Permite intro un valor numrico y un texto, a solicitud,mediante InputBox
11
Juan
ALINEAR (Alignment)
Range("E63").Select Selection.HorizontalAlignment = xlLeft
Alinea el contenido de E63 a la derecha o izquierda.
Selection.HorizontalAlignment = xlRight
MOVER (Cut)
Range("B78:B80").Cut Destination:=Range("C78") Range("C78:C80").Cut Destination:=Range("B78")
B77
1 1 1
OFFSET
ActiveCell.Offset(2, 3).Range("a1").Select
Celda F84
Seleccione F84. Selecciona una celda 2 filas abajo y 3 columnas hacia la derecha, de la celda activa ,es decir selecciona I86
IR A (Goto)
Application.Goto REFERENCE:="CONSUMO", Scroll:=True
CONSUMO es un range name, ubicado en Sheet3, D9:I22. Va a la referencia antes sealada y rueda D9 hacia la esquina superior izquierda de la ventana.
ActiveWindow.FreezePanes = False
Activa o selecciona la hoja Sheet3 Desactiva la barra de frmula.
ACTIVAR (Activate)
Activa o selecciona la hoja Sheet3 Desactiva la barra de frmula. Activa la barra de frmula
FORMULA
RANGE("C119").FORMULA = "=SUM(C116:C117)"
2 3 TOTAL 5
Celda C119
'Selecciona la hoja Sheet1' 'Selecciona la celda A1' 'En la celda activa (A1) introduce el texto Name' 'Selecciona la celda B1' 'En la celda activa (B1) introduce el texto Address' 'Selecciona el rango A1: B1' 'Pone el rango seleccionado en negrita'
End Sub El siguiente ejemplo cumplimenta la misma tarea, sin activar o seleccionar la hoja o celdas Sub Titulos() With Worksheets("Sheet1") .Range("A1") = "Name" .Range("B1") = "Address" .Range("A1:B1").Font.Bold = True End Sub
Sub RoundTo Zero1() For counter = 1 To 20 Set curCell = Worksheets("Sheet1").Cells(counter, 3) If Abs(curCell.Value) < 0.01 Then curCell.Value = 0 Next counter End Sub
Otra forma simple para repetir atravs de un rango es usar For EachNext, con la coleccin de celdas devueltas por el mtodo Range. Visual Basic, automticamente, define una variable objeto para la siguiente celda, cada vez que la repeticin se ejecuta. El siguiente procedimiento repite atravs del rango A1:D10, sustituyendo por 0 (cero) cualquier nmero, cuyo valor absoluto sea menor que 0.01. Sub RoundToZero2() For Each c In Worksheets("Sheet1").Range("A1:D10").Cells If Abs(c.Value) < 0.01 Then c.Value = 0 Next End Sub
Instruccin Do...Loop Repite un bloque de instrucciones mientras una condicin es verdadera, o mientras una condicin se hace verdadera. Syntax Do [{While | Until} condicin] [instrucciones] [Exit Do] [instrucciones] Loop
En este ejemplo se chequea la condicin antes de entrar en la repeticin. Si myNum fuera igual a 9 en lugar de 20, las instrucciones
Do While myNum > 10 myNum = myNum - 1 counter = counter + 1 Loop MsgBox "The loop made " & counter & " repetitions." End Sub O puede utilizar otra Sintax Do [instrucciones] [Exit Do] [instrucciones] Loop [{While | Until} condicin] Ejemplo Sub ChkLastWhile() counter = 0 myNum = 20 Do myNum = myNum - 1 counter = counter + 1 Loop While myNum > 10 MsgBox "The loop made " & counter & " repetitions." End Sub
dentro del loop no se ejecutaran jams. En este caso las instrucciones del loop se ejecutarian slo hasta una vez antes que la condicin sea falsa.
Ejemplo Repitiendo instrucciones hasta que una condicin sea verdadera. Sub ChkFirstUntil() counter = 0 myNum = 20 Do Until myNum = 10
myNum = myNum - 1 counter = counter + 1 Loop MsgBox "The loop made " & counter & " repetitions." End Sub El procedimiento anterior chequea la condicin antes del lazo de repeticin. Sub ChkLastUntil() counter = 0 myNum = 1 Do myNum = myNum + 1 counter = counter + 1 Loop Until myNum = 10 MsgBox "The loop made " & counter & " repetitions." End Sub El procedimiento anterior chequea la condicin despus qye el lazo de repeticin ha comenzado.
Salir de un DoLoop desde dentro del lazo de repeticin. Ejemplo Sub ExitExample() counter = 0 myNum = 9 Do Until myNum = 10 myNum = myNum - 1 counter = counter + 1 If myNum < 10 Then Exit Do Loop MsgBox "The loop made " & counter & " repetitions." End Sub
En el ejemplo anterior, a myNum se le asigna un valor que crea una repeticin sin fin, que se resuelve con la instruccin IfThen Else y Exit Do.
Instruccion ForNext Se trata de otra instruccin muy utilizada para lazos de repeticin. Syntax For counter = star To end (Step step) Instrucciones Exit For Instrucciones Next Ejemplo Sub Borra() For i = 1 To 10 Cells(i, 3).Delete next End Sub El contador es i. Borra el contenido de la celdas C1:C10. El Step, osea, el incremento del contador es igual a 1 cuando no se especifique lo contrario.
Precios 10 15 20
CODIGO 100 200 300 400 500 600 700 800 900 1000 1100 1200
CRUDO 2 4 6 8 10 12 14 16 18 20 22 24
FUEL 2 4 6 8 10 12 14 16 18 20 22 24
DIESEL 2 4 6 8 10 12 14 16 18 20 22 24
G.MOT 2 4 6 8 10 12 14 16 18 20 22 24
KERO 2 4 6 8 10 12 14 16 18 20 22 24
CODIGO
ENTIDAD
ORGAN.
PROV.
MUNIC.
Utilizando nmeros ndices Los nmeros ndices no son ms que los correspondientes a la fila y columna. Cells(No.Fila, No. Col) Cells(6,1) Range(Cells(1,1), Cells(5,2)) Celda A6 Rango ("A1:B5")
Esta es la forma ms prctica para elaborar Macros de Visual Basic, por su gran versatibilidad. Ejemplo de Visual Basic Sub NotacionA1() Workbooks("Entregas").Sheets("Cupet").Range(Cells(1,1),Cells(5,2)).Font.Bold = True
End Sub Pone en negritas las celdas A1:B5, ubicadas en la Hoja Cupet del Libro Entregas. Utilizando notacin simplificada [A1] [A1:B5] Ejemplo de Visual Basic Sub NotacionA1() Workbooks("Entregas").Sheets("Cupet").[A1:B5].Font.Bold = True End Sub Pone en negritas las celdas A1:B5, ubicadas en la Hoja Cupet del Libro Entregas. Refiriendose a Nombres de Rangos Para nombrar una celda o un rango seleccionados , hagalo mediante el Comando INSERT - Name - Define. Una vez nombrado el rango, puede utilizar este nombre en lugar de otro estilo de referencia. Por ejemplo, nombremos a A1:B5 como VENTAS. Range("Ventas") Ejemplo de Visual Basic Sub NotacionA1() Workbooks("Entregas").Sheets("Cupet").Range("VENTAS").Font.Bold = True End Sub Sub NotacionA1() Range("[Entregas.xls]Cupet!VENTAS").Font.Bold = True End Sub Rango(A1:B5) Celda A1 Rango("A1:B5")
Ambos ponen en negritas las celdas A1:B5, ubicadas en la Hoja Cupet del Libro Entregas. Refirindose a celdas relativas a otras celdas. Una forma comn a este tipo de referencia es usando la propiedad Offset. En el siguiente ejemplo, el contenido de la celda ubicada una fila hacia abajo y tres columnas a la derecha de la celda activa en la hoja de trabajo es formateada con doble subrayado. Sub Underline() ActiveCell.Offset(1,3).Font.Underline = xlDouble End Sub Refirindose a rangos mltiples. Usando el mtodo apropiado puede referirse fcilmente a mltiples rangos, como por ejemplo: Sub LimpiarRangos() Worksheets("sheet1").Range("c5:d9, g9:h16, b14:d18).ClearContents End Sub
Mtodo(Method)
Un mtodo es una accin que un objeto puede ejecutar, por ejemplo, Clearcontents es un mtodo del objeto rango, porque limpia el contenido de las celdas, es decir, ejecuta una accin. Ejemplos de Mtodos frecuentemente utilizados son:- Calculate, Activate, Add, Align, Clear, Close, Copy, Delete, Goto, InputBox, Move, Open, Paste, PrintOut, Run, Save, Select, Protect, Unprotect, etc,- Methods
Propiedad (Property)
Una propiedad es un atributo de un objeto que define una de las caractersticas del mismo, como su tamao, color, o su localizacin en la pantalla, o un aspecto de su comportamiento, como por ejemplo, si esta visible o no. Para cambiar las caratersticas de un objeto, usted debe cambiar el valor de sus propiedades.
Ejemplos de Propiedades frecuentemente utilizados son:- ActiveCell, ActivePane, ActiveSheet, Bold, ActiveWorkbook, Border, Brightness, CenterHorizontally, Color, Column, ColumnWidth, FreezePanes, Locked, MarginTop, MergeCells, Row, Value, View, Zoom, etc. - Property Veamos algunos ejemplos prcticos de cdigos de Visual Basic. Sub Cerrar() Workbooks(1).Close End Sub De la coleccin de Libros abiertos se cierra el primero abierto. En este caso, cada uno de los libros de trabajo (Workbook), de la coleccin de Libros Abiertos (Workbooks), se identifica con un nmero de orden, segn fueron abiertos. Sub Cerrar() Workbooks("Entregas.xls").Close End Sub En este ejemplo el libro nombrado Entregas.xls, es el que se cierra. En ambos ejemplos se utiliza el Mtodo Close para cerrar el libro. Sub CongelarPaneles() Worksheets("Consumo").Range("c5").Select ActiveWindow.FreezePanes = True End Sub En este ejemplo Range("c5"), es un worksheet object, que representa la celda c5 de la Hoja de Clculo nombrada Consumo. La accin que ejecuta el objeto mediante el mtodo Select , es el de seleccionar la celda o activarla, posteriormente se aplica una propiedad a toda la ventana activa, mediante la propiedad FreezePanes, que con siste en congelar los talones superiores e izquierdo, a partir de la celda seleccionada. Como explicamos anterior mente, las propiedades cambian los valores de las caractersticas, por lo que en su mayora se expresan mediante el signo =. En este caso True, activa el congelamiento y False lo desactiva.
PRIMERA PARTE
FUNCIONES DE HOJAS DE TRABAJO Fechas y Hora Matemticas y Trigonomtricas Estadsticas Busqueda y Referencias Bases de Datos Textos Lgicas
Informativas Se muestran ejemplos prcticos de algunos de los muchos usos en la aplicacin de las funciones seleccionadas, los cuales se analizarn de forma ms especfica en la Parte correspondiente a las Aplicaciones. Las funciones se agrupan por categoras, y para su visualizacin y estudio basta con hacer " click " en la deseada.
Puede introducir una nueva fecha de la forma (mes/da/ao) y observar el resultado en la celda correspondiente del ejemplo.
En muchas aplicaciones se requiere contar en una celda dada con el nmero del mes,a partir de una fecha dada, con el objetivo de ulteriores elaboraciones de datos.
DAY
Devuelve el nmero del da del 1 al 31. Syntax DAY(serial_number) El Nmero de Serie es un cdigo de fecha y tiempo usado por Excel para los clculos de fechas y horas. Puede utilizar Nmero de Serie como texto, tales como "4-15-1993" o "15-Apr-1993" en lugar de como n
Celda G40 Puede introducir una nueva fecha de la forma (mes/da/ao) y observar el resultado en la celda correspondiente del ejemplo.
Celda G40 Puede introducir una nueva fecha de la forma (mes/da/ao) y observar el resultado en la celda correspondiente del ejemplo.
En muchas aplicaciones se requiere contar en una celda dada con el nmero del da,a partir de una fecha dada, con el objetivo de ulteriores elaboraciones de datos.
DATEVALUE
Devuelve el Nmero de Serie de la fecha, representada por la fecha texto. Syntax DATEVALUE(date_text) La fecha texto es un texto que devuelve una fecha en el formato de Excel desde January 1, 1900 hasta December 31, 9999. El Nmero de Serie correspondiente a January 1, 1900 es igual a 1 y as sucesivamente hasta December 31, 9999, al cual corresponde el 2958465 Ejemplos Los siguientes ejemplos usan el sistema de fecha 1900. DATEVALUE("8/22/55") igual a 20323 DATEVALUE("22-AUG-55") igual a 20323 DATEVALUE("1/1/1900") igual a 1 DATEVALUE("12/31/9999") igual a 2958465 20323 20323 2 2958465
Otras funciones tambin devuelven el Nmero de Serie o la Fecha segn sea formateada la celda donde se encuentre la frmula, por ejemplo:
DATE
Syntax DATE(year,month,day) Ejemplos 8/22/1955 20323
CALCULOS CON FECHAS Veremos dos ejemplos: 1.Calcular los das de diferencia entre dos fechas. 2. Adicionar das a una fecha dada para obtener una nueva fecha. Ejemplos 33 33 8-May-00 10-Jun-00
Excel interpreta el texto como una fecha en el formato mm/dd/yy, convierte las fechas en Nmeros de Series, y calcula entonces la diferencia entre ellos. 10-Jun-00 10-Jun-00 8-May-00 33
EXP
Devuelve a "e" elevado a un nmero. Syntax EXP(number) Ejemplos EXP(1) igual a 2.718282 (valor aproximado de e) 2.72
7.39 3
FACT
Devuelve el factorial de un nmero. Syntax FACT(number) Ejemplos FACT(1) igual 1 FACT(1.9) igual FACT(1) igual 1 FACT(0) igual 1 FACT(-1) igual a #NUM! FACT(5) igual a 1*2*3*4*5 igual a 120 1 1 1 Err:502 120
LCM
Devuelve el Mnimo Comn Mltiplo Syntax LCM(number1,number2, ...) Ejemplos
GCD
Devuelve el Mximo Comn Divisor Syntax GCD(number1,number2, ...) Ejemplos
10 72
1 12
LN
Devuelve el logartmo natural de un nmero. Syntax LN(number) Ejemplos LN(86) igual a 4.454347 LN(2.7182818) igual a 1 LN(EXP(3)) igual a 3 EXP(LN(4)) igual a 4 4.45 1 3 4
LOG
Devuelve el logartmo de un nmero en la base que usted especifique. Syntax LOG(number,base) Ejemplos LOG(10) igual a 1 1
3 4.45
LOG10
Devuelve el logartmo base 10 de un nmero. Syntax LOG10(number) Ejemplos LOG10(86) igual a 1.934498451 LOG10(10) igual a 1 LOG10(1E5) igual a 5 LOG10(10^5) igual a 5 1.93 1 5 5
OOD
Devuelve un nmero redondeado hacia el entero none superior. Syntax ODD(number) Ejemplos ODD(1.5) igual a 3 3
3 -3
PRODUCT
Multiplica todos los n'umeros dados como argumentos y devuelve el producto. Syntax PRODUCT(number1,number2, ...) Los nmeros 1, 2, son 1 a 30 nmeros que usted quiere multiplicar. Ejemplos Si las celdas G161:I161 contienen 5, 15, y 30: PRODUCT(G161:I161) igual a 2,250 PRODUCT(G161:I161, 2) igual a 4,500 5 15 2250 4500 30
POWER
Devuelve el resultado de un nmero elevado a una potencia Syntax POWER(number,power) Ejemplos POWER(5,2) igual a 25 POWER(98.6,3.2) igual a 2401077 25 ###
5.66
ROUND
Redondea un nmero a un nmero especificado de decimales. Syntax ROUND(number,num_digits) Ejemplos ROUND(2.15, 1) igual a 2.2 ROUND(-1.475, 2) igual a -1.48 ROUND(21.5, -1) igual a 20 2.2 -1.48 20
SUMIF
Suma las celdas especificadas a partir de un criterio dado. Syntax SUMIF(range,criteria,sum_range) range es el rango de celdas que se quiere evaluar. criteria es el criterio en forma de un nmero, expresin, o text, que define que celdas hay que sumar. sum_range son las actuales celdas a sumar. Ejemplos Suponga que las celdas B222:B225 contienen los siguientes valores para cuatro casas: $100,000, $200,000, $300,000 y $400,000 respectivamente. Las celdas C222:C225 contienen las siguientes comisiones de venta
en cada uno de los correspondientes valores: $7,000, $14,000, $21,000 y $28,000 SUMIF(B222:B225,">160,000",C222:C225) igual a $63,000
VALOR COMISION
C222
Se traduce as : sume las celdas en el rango C222:C225, para las cuales, las celdas del rango B222:B225, sean mayores que 160,000. En este caso se suman: C223:C225.
63,000
SQRT
Devuelve una raiz cuadrada positiva. Syntax SQRT(number) Ejemplos SQRT(16) igual a 4 SQRT(-16) igual a #NUM! SQRT(ABS(-16)) igual a 4
4 Err:502 4
SUMPRODUCT
Multiplica los componentes correspondientes de las series dadas y devuelve la suma de los productos. Syntax SUMPRODUCT(array1,array2,array3, ...)
Array1, array2, array3, ... son 2 a 30 series cuyos componentes usted quiere multiplicar y sumar. Los argumentos de las series deben tener la misma dimensin. Ejemplos B 3 8 1 SUMPRODUCT({3,4;8,6;1,9}, {2,7;6,7;5,3}) igual a 156 156 C 4 6 9 D E 2 6 5 F 7 7 3
La operacin realizada equivale a la suma de : 3*2+4*7+8*6+6*7+1*5+9*3 El ejemplo anterior devuelve el mismo resultado que la frmula SUM(B260:C262*E260:F262) entrada como un"array". 156 Para entrar una frmula array, seleccione la celda, escriba la frmula y presione CTRL+SHIFT+ENTER
37
COUNTA
Cuenta el nmero de celdas que no estan vacias, osea que contienen cualquier tipo de informacin en un rango dado. Syntax COUNTA(value1,value2, ...) Ejemplos
JUAN # 3 5 6 7
JUAN # 3 5 6 7
COUNTBLANK
Cuenta celdas vacias en un rango especfico. Syntax COUNTBLANK(range) Ejemplos COUNTBLANK(F57:F66) igual a 4 JUAN # 3 5 6 7
COUNTIF
Cuenta el nmero de celdas en un rango que coinciden con el criterio dado. Syntax COUNTIF(range,criteria) Ejemplos COUNTIF(F79:F86,"JUAN") COUNTIF(H79:H86,">3") JUAN PEDRO JOSE JUAN MARIO JOSE JUAN JUAN 4 1 2 3 4 5 6 7
MAX
Devuelve el valor mayor en un juego de Datos Syntax MAX(number1,number2,...) Ejemplos MAX(E99:E107) igual a 7 1 2 3 4 5 6 7
MIN
Devuelve el valor menor en un juego de Datos Syntax MIN(number1,number2,...) Ejemplos MIN(J99:J107) igual a 1 1 2 3 4 5 6 7
SMALL
Devuelve el K-gesimo menor valor en un rango de datos. Syntax SMALL(array,k) K es la posicin a partir del menor de los valores en el rango del dato a devolver. Ejemplos SMALL(G122:G128,4) igual a 6 El cuarto dato ms pequeo es 1, 3, 5, 6. 5 7 9 1 3 6 12
LARGE
Devuelve el K-gesimo mayor valor en un rango de datos. Syntax LARGE(array,k) K es la posicin a partir del mayor de los valores en el rango del dato a devolver.
CORREL
Devuelve el Coeficiente de Correlacin entre las series 1 y 2. Syntax CORREL(array1,array2) Ejemplos CORREL({3,2,4,5,6},{9,7,12,15,17}) igual a 0.997054 CORREL(G159:G163,H159:H163) igual a 0.997054 3 2 4 5 6 9 7 12 15 17 1
LINEST
Utiliza el mtodo de los Mnimos Cuadrados para el mejor ajuste de una linea recta a sus datos. La ecuacin para la lnea es: y = mx + b or y = m1x1 + m2x2 + ... + b (si hay rangos multiples de los valores x) Syntax LINEST(known_y's,known_x's,const,stats) Known_y's es la serie de valores y que usted ya conoce en la relacin y = mx + b.
Known_x's es una serie opcional de valores x que usted puede ya conocer en la relacin y = mx + b. Const es un valor lgico que especifica cuando se fuerza a la constante b a ser igual que 0. Si const es TRUE o se omite, b es calculada normalmente. Si const es FALSE, b es considerada igual a 0 y los valores m se ajustan a y = mx. Stats es un valor lgico que especifica cuando devolver estadstica adicional de regresin. Si stats es TRUE, LINEST devuelve la estadstica adicional, de forma que la serie es {mn,mn-1,...,m1,b;sen,sen-1,...,se1,seb;r2,sey;F,df;ssreg,ssresid}. Si stats es FALSE o se omite, LINEST devuelve slo los coeficientes m y la constante b. La estadstica adicional es la siguiente: Statistic se1,se2,...,sen Seb r2 sey F df ssreg ssresid Los errores standar de los coeficientes m1, m2, , mn. Los errores standar para la constante b (seb = #N/A cuando constt es FALSE). El coeficiente de determinacin. El error standar para la y estimada. La F estadstica, o el valor F observado. Los grados de libertad. La regresin suma de cuadrados. La suma de cuadrados residual.
Cuando usted tiene uan sola variable independiente x, puede utilizar las siguientes f'ormulas: INDEX(LINEST(known_y's,known_x's),1), para determinar la pendiente. INDEX(LINEST(known_y's,known_x's),2), para determinar intercepcin y = b.
y = mx + b = 2x + b, para x = 0, y = 1, para y = 1, b = 1 2 y = 2x + 1 Ejemplo 2. Regresin Lineal Simple Suponga un negocio tiene ventas de $3,100, $4,500, $4,400, $5,400, $7,500, y $8,100 durante los primeros seis meses del ao fiscal. Asumiendo que los valores se ubican en el rango I225:I230, usted puede usar la siguiente regresin lineal simple para estimar el noveno mes. 3100 4500 4400 SUM(LINEST(I225:I230)*{9,1}) igual a SUM({1000,2000}*{9,1}) igual a $11,000 5400 y = 1000x + b = 1000x + 2000 = 1000*9 + 2000 = 11000 7500 8100 11000 1000 2000 En general, SUM({m,b}*{x,1}) igual a mx + b, el valor y estimado para un x dado. 1
Ejemplo 3. Regresin Linear Multiple. Suponga un comerciante quiere establecer un grupo de pequeas oficinas en un distrito de negocios. Se puede utilizar la Regrtesin Lineal Multiple para estimar el valor de un edificio de oficinas basado en: Variable y x1 x2 x3 x4 Se refiere a: Valor asequible del edificio de oficinas. Area en pies cuadrados. Nmero de oficinas Nmero de entradas Edad del edificio en aos.
Se asume que hay una relacin lineal entre cada variable independiente y el valor del edificio y. Se toma una muestra aleatoria de 11 edificios de 1500 posibles y se obtiene la siguiente data.
B x1 2,310 2,333 2,356 2,379 2,402 2,425 2,448 2,471 2,494 2,517 2,540
C x2 2 2 3 3 2 4 2 2 3 4 2
D x3 2 2 1.5 2 3 2 1.5 2 3 4 3
E x4 20 12 33 43 53 23 99 34 23 55 22
F y 142,000 144,000 151,000 150,000 139,000 169,000 126,000 142,900 163,000 169,000 149,000
Cuando se entra como un array la formula siguiente: LINEST(F254:F264,B254:E264,TRUE,TRUE) se obtiene el resultado siguiente: B -234.24 13.27 1 459.75 ### C D E F 2553.21 12529.77 27.64 52317.83 530.67 400.07 5.43 12237.36 970.58 #N/A #N/A #N/A 6 #N/A #N/A #N/A ### #N/A #N/A #N/A
La ecuacin y = m1*x1 + m2*x2 + m3*x3 + m4*x4 + b, puede ahora obtenerse usando los valores de la primera fila. y = 27.64*x1 + 12,530*x2 + 2,553*x3 - 234.24*x4 + 52,318 Ahora se puede estimar el valor asequible para un edificio en la misma area de 2,500 pies cuadrados, tres oficinas, 2 entradas y 25 aos de antiguedad. y = 27.64*2500 + 12530*3 + 2553*2 - 234.24*25 + 52318 = $158,261
FORECAST
Calcula o predice un valor futuro, a partir de valores existentes, utilizando regresin lineal Syntax FORECAST(x,known_y's,known_x's) x es el punto para el cual se requiere predecir un valor. La ecuacin para el FORECAST es a+bx. Ejemplo FORECAST(30,{6,7,9,15,21},{20,28,31,38,40}) igual a 10.60725 6 7 9 15 21 10.61 20 28 31 38 40 10.61
A1 es valor lgico que especifica el estilo de referencia A1 o R1C1.TRUE u omitido devuelve estilo A1, FALSE devuelve R1C1. Sheet_text es texto especificando el nombre de la hoja de trabajo a ser usada worksheet como referencia externa; si es omitido no es usada hoja de trabajo alguna. Ejemplos ADDRESS(2,3) igual a "$C$2" ADDRESS(2,3,2) igual a "C$2" ADDRESS(2,3,2,FALSE) igual a "R2C[3]" ADDRESS(2,3,1,FALSE,"[Book1]Sheet1") igual a "[Book1]Sheet1!R2C3" ADDRESS(2,3,1,FALSE,"EXCEL SHEET") igual a "'EXCEL SHEET'!R2C3" $C$2 C$2 R2C[3] '[Book1]sheet1'!R2C3 'EXCEL SHEET'!R2C3
COLUMN
ROW
CHOOSE
Se usa para seleccionar uno de un mximo de 29 valores, basado en un nmero ndice. Syntax CHOOSE(index_num,value1,value2,) El nmero ndice especifica cual valor argumento es seleccionado. El ndice es entre 1 y 29. Ejemplos CHOOSE(2,"1st","2nd","3rd","Finished") igual a "2nd" SUM(k60:CHOOSE(3,k61,k62,k63)) igual a SUM(k60:k63) Si k66 contiene 4, entonces: CHOOSE(k66,"Ene","Feb","Mar","Abr") igual a Abr Abr 2nd 100 10 20 30 40 100 4
MATCH
Retorna la posicin relativa de un item en una serie que coincide con un valor especifico en un orden dado. Syntax MATCH(lookup_value,lookup_array,match_type) Lookup_value es el valor que usted usa para encontrar el valor deseado en una tabla. Lookup_array es un rango contiguo de celdasque contienen posibles valores buscados. Match_type es el nmero -1, 0, or 1. Si es 1, MATCH encuentra el mayor valor, menor o igual al buscado.La serie debe ser ascendente. Si es 0, MATCH encuentra el primer valor que sea exactamente igual al buscado. La serie en cualquier orden. Si es -1, MATCH encuentra el menor valor, mayor o igual que el buscado. La serie descendente. Si match_type es omitido, se asume como 1. Ejemplos B Articulo Papel Libro Cuaderno Lpiz Presilla Goma C Cantidad 2000 5000 10000 15000 20000 25000 D Precio
D96
2 3 1 101
OFFSET
Devuelve una referencia a un rango que esta a un nmero de filas y columnas especificado de distancia de una celda o rango de celdas dadas. Syntax OFFSET(reference,rows, cols,height,width) Reference es la referencia desde la cual usted quiere basar el offset. Rows es el nmero de filas hacia arriba o abajo, a la que usted quiere referir la celda offset. Usando un 5 como argumento de la fila, quiere decir que su referencia esta a 5 filas hacia abajo de la referencia offset. Cols es el nmero de columnas, hacia la derecha si es positivo el nmero o izquierda si es negativo. Height es el nmero de filas, que se quiere de alto. Width es el nmero de columnas, que se quieren de ancho. Si height or width se omiten, se asume que sean los mismos de la referencia. Ejemplos OFFSET(B128,2,2,1,1) igual a D130. Si usted introduce esta frmula en una hoja de trabajo, Excel muestra el valor contenido en la celda D130.
D130 B128
5555
5555
SUM(OFFSET(B134,2,2,3,2)
B134
1 1 1
1 1 1 6
A partir de B134, dos filas hacia abajo, dos columnas hacia la derecha, al alto de tres filas y al ancho de dos columnas, es decir, se refleja la suma del contenido del Rango D136:E138
VLOOKUP
Busca un valor en la columna ms a la izquierda de una tabla, y devuelve un valor en la misma linea, a partir de una columna especificada en la tabla. Syntax VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) Lookup_value es el valor a ser hallado en la primera columna de la serie. Lookup_value puede ser un valor, una referencia o un texto. Table_array es la tabla de informacin en la que se busca el dato. Col_index_num es el nmero de la columna en la tabla donde se busca el dato. Range_lookup es un valor lgico para encontrar una conciliacin exacta o aproximada. FALSE para conciliaciones exactas, TRUE aproximadas. Ejemplos CODIGO NOMBRE CANTIDAD 1 Papel 10 2 Lpiz 20 3 Goma 30 4 Libro 40 =VLOOKUP(J161,B161:D164,2,FALSE) es igual a Lpiz =VLOOKUP(J161,B161:D164,3,FALSE) es igual a 20 Libro 40 4
J161 Introduzca del 1 al 4
F19
CRUDO >100
FUEL
DIESEL
I20
La base de Dato esta ubicada en el rango B19:E29, de color amarillo. Los Criterios en el rango F19:I20 El criterio que se muestra indica que se deber extraer la informacin solicitada del campo especificado, slo para el Barco B, siempre y cuando la informacin en el campo CRUDO sea mayor de 100.
=DGET($B$19:$E$29,"BARCO",$F$39:$I$40)
DOUNT = 2, quiere decir, que hay slo dos partidas en el campo FUEL, correspondientes al barco B con informacin en el campo CRUDO mayor de 100, que son 3000 y 2300 en las celdas D23 y D26, respectivamente. La informacin en la celda D27 no cumple el criterio por no ser mayor que 100. El rango de la Base de Datos debe incluir los nombre de los campos, que son determinantes para la consideracin de los Criterios. El campo se puede reflejar con el nombre del mismo entre comillas o con el nmero de la columna donde esta ubicado:
=DCOUNT($B$19:$E$29,"FUEL",$F$19:$I$20) =DCOUNT($B$19:$E$29,3,$F$19:$I$20)
En la frmula se ubica el rango de celdas donde esta localizado el criterio, cuyos nombres de campo deben coincidir exactamente con los de la tabla. Para ms informacin sobre los diferentes tipos de criterios consulte la ayuda (Criteria). Se trata de funciones muy tiles para el trabajo con Excel, las cuales facilitan significativamente la elaboracin de sistemas de gestin de informacin, lo que podr apreciarse prcticamente.
Para Chequear que en la celda G27 se ha introducido el dato correcto use esta f'ormula introducida como array. {=OR(EXACT(TestValue, CompareRange))} TRUE Capitolio
Celda G27. Introduzca otro texto que no sea Capitolio y vea que pasa en B27.
LEN
Devuelve el nmero de caracteres en un texto, incluido espacios en blanco. Syntax
LEFT
Devuelve el primer caracter de la izquierda en un texto Syntax LEFT(text,num_chars) Num_chars especifica cuantos caracteres quiere extraer. Si es omitido extrae slo 1. Ejemplos LEFT("Precio de Venta", 4) igual a "Prec" Si E61 contiene "Mio" LEFT(E61) igual a "M" Mio
RIGHT
Devuelve el ltimo caracter de la derecha en un texto Syntax LEFT(text,num_chars) Num_chars especifica cuantos caracteres quiere extraer. Si es omitido extrae slo 1. Ejemplos Prec RIGHT("Precio de Venta", 4) igual a "enta" Si J61 contiene "Mio" M RIGHT(J61) igual a "o" Mio enta
=RIGHT(J61)
Suponga que extrae un dato de un sistema que es un nmero negativo, pero con el signo a la derecha y es necesario, evitar esto, es decir, extraerlo con el signo negativo a la izquierda. E71 Haga la prueba El dato esta en la celda E71: LEFT(E71,LEN(E71)-1)*-1 25-25
LOWER
Convierte en minsculas las letras maysculas de un texto. Syntax LOWER(text) Ejemplos LOWER("W. Glez") igual a "w. glez" LOWER("Apt. 2B") iguala "apt. 2b" w. glez apt. 2b
UPPER
Convierte en maysculas las letras minsculas de un texto. Syntax UPPER(text) Ejemplos UPPER("W. Glez") igual a "W. GLEZ" UPPER("Apt. 2B") iguala "APT. 2B" W. GLEZ APT. 2B
OR
Devuelve TRUE si algn argumento es verdadero y FALSE si todos los argumentos son falsos. Syntax OR(logical1,logical2,...)
IF
Devuelve un valor si una condicin especificada es verdadera u otro valor si es falsa. Syntax 1 IF(logical_test,value_if_true,value_if_false)
Ejemplos En el ejemplo siguiente, si el valor de la celda F57 es mayor que 10, se extrae el valor en F58, sino se extrae el valor en F57+2. IF(F57>10,F58,F57+2) 5 100
F57 Puede ir haciendo pruebas en esta celda.
7 IF(F57="Habana",F58,F57) IF(AND(F57>1,F57<10,F58, "Fuera de Rango") IF(OR(F57=5,F57=10),F58, F57*F58/2) IF(F57=5,F58,IF(F57=6,F58+1,IF(F57=7,F58+2,0))) IF(SUM(F57,F58)=200,"OK","DESCUADRE") IF(LEN(F57)=4,F57,F58) 5 100 100 100 DESCUADRE 100
Con IF puede utilizar las funciones de Excel como logical_text, lo cual le da una alta utilidad a esta funcin.
Then return A B C D F
IF(ISERROR(AVERAGE(A1:A4)),"No Numbers",AVERAGE(A1:A4))