Operación de Microsoft Excel C om b i n a c i ó n de f u n c i o n e s y f ó r m u l as = S I ( Y( . . . ) . . . ) o = S i ( O( . . . ) . . . ) En secciones anteriores vimos que la función SI() debía cumplir una condición, como por ejemplo, controlar si en una celda determinada había un texto o cierto valor numérico. Pero, ¿qué pasaría si se tuviesen que cumplir más de una condición? Supongamos que la función SI() debe tener en cuenta dos condiciones. Estas dos condiciones podrían ser: La función SI() hiciese algo sólo si se tuvieran que cumplir las dos condiciones expuestas. Que la función SI() hiciese algo si se cumpliese una de las dos condiciones expuestas. Controlaremos una u otra forma, con dos operadores lógicos: el Y, y el O Y(condición1;condición2;...), donde podemos plantear hasta 30 condiciones, es decir que si se plantean 30 condiciones todas deben ser verdaderas para que la función devuelva verdadero. O(condición1;condición2;...), con la diferencia en que basta que una de las 30 condiciones como máximo, sea verdadera para que la función devuelva verdadero. La combinación de estas fórmulas con la función SI(), tendría la siguiente sintaxis: =SI(Y(Condición1;Condición2);Verdadero;Falso) Ejemplos de Funciones SI(...) con operadores lógicos En el siguiente ejemplo, se ha diseñado una tabla en la cual se inserta la columna “Mejores Clientes”, dentro de la cual se mostrará las empresas de tipo “SA” que superan el promedio de emisión de horas de todas las empresas. Fórmula introducida en la primera celda de dicha columna Guía del Usuario Página 107 Centro de Capacitación en Informática Operación de Microsoft Excel En la ilustración superior utilizamos la función SI(), la cual ha de controlar que se cumplan dos condiciones, es decir, que la empresa sea “SA” y que las horas de emisión contratadas sean mayor al promedio de horas contratadas por todas las empresas. Descripción de la fórmula aplicada = S I( nombre de la función aplicada de forma de poder determinar un resultado condicionado. Y( el operador Y controla que se cumplan las dos condiciones expuestas. (derecha(C3;2)="SA"; primera condición, donde se toma de C3 (nombre de la empresa) dos caracteres contando desde la derecha y plantea si son iguales a “SA”. promedio(D3:D8)<D3) segunda condición, la que controla que el promedio de horas de emisión contratada por todas las empresas, sea menor a las horas de emisión contratada por la empresa actual, dato tomado de la celda D3 ;C3 salida verdadera, donde en caso de cumplirse las dos condiciones expuestas, se visualizará el contenido de la celda C3 o sea el nombre de la empresa. ;"-") salida falsa, donde en el caso de no cumplirse por lo menos una condición, se visualizará un guión “–“. ☞ Tener en cuenta que para la resolución de determinados problemas, podremos encontrar distintas soluciones. Para poder copiar la fórmula anteriormente descripta a las demás cedas de la columna “Mejores Clientes”, debe ser modificada de forma de no perder las referencias a las celdas que importan se mantengan constantes, del siguiente modo: =SI(y(derecha(C3;2)="SA";promedio($D$3:$D$8)<D3);C3;"-") ☞ Excel tiene la posibilidad de anidar las funciones SI(), es decir que en caso de ser necesario, podemos volver a plantear nuevamente un Si(), en caso de que se cumpla o no la condición planteada para el primero y así sucesivamente. Es posible anidar hasta siete funciones SI(), todo depende de la cantidad posible de salidas a contemplar. Dicho de otra forma un SI() permite obtener dos salidas posibles, una para el caso verdadero y otra para el caso falso; pero si tuviéramos que contemplar tres posibles salidas o resultados, no nos alcanzaría con un SI() y deberíamos utilizar otro en la misma fórmula. Página 108 Guía del Usuario Centro de Capacitación en Informática Operación de Microsoft Excel Ejemplos de Funciones SI(...) anidadas Si por ejemplo tuviéramos que formular una función que devuelva de forma automática un juicio, dependiendo de las notas obtenidas por los alumnos y teniendo en cuenta los siguientes datos: las notas se encuentran en una escala del 1 al 12, para las notas mayores o iguales a 5 el juicio es “aprobado”; de lo contrario (o sea notas menores e iguales que 4) el juicio será “no aprobado”. La fórmula a introducir en la primer celda para la columna “Juicio”, o sea en C4, sería: =SI(B4=>5;”aprobado”;”no aprobado”) O sea, teníamos dos posibles juicios: 1) aprobado y 2) no aprobado, los que determinan las dos posibles salidas o resultantes de la función SI(). Por otro lado si los juicios cambiaran a: Nota Entre 1 y 4 Entre 5 y 7 Entre 8 y 12 Juicio insuficiente regular excelente La fórmula a utilizar para resolver esta situación sería distinta, pues ahora existen tres posibles resultados. Dado que una sola función SI() permite contemplar dos posibles resultados, utilizaremos una segunda función SI() anidada en la primera. Dicha fórmula podría ser: =SI(B4<=4;"insuficiente";SI(Y(B4>=5;B4<=7);"regular";"excelente")) o podría ser =SI(Y(B4>=5;B4<=7);"regular";SI(B4<=4;"insuficiente";"excelente")) o podría ser =SI(B4>=8;"excelente";SI(B4<=4;"insuficiente";"regular")) Si a su vez quisiéramos una fórmula mucho más completa, donde contemplaríamos los posibles valores inválidos para las notas, como lo pueden ser ingresos de notas menor que 1 y mayor que 12; a dicha fórmula le agregaríamos otro SI() anidado, dado que ahora son cuatro los posibles resultados a contemplar: =SI(O(B4<1;B4>12);"NotaInválida";SI(B4<=4;"insuficiente"; SI(Y(B4>=5; B4<=7);"regular";"excelente"))) (sigue debajo) o podría ser =SI(B4<=4;"insuficiente";SI(Y(B4>=5;B4<=7);"regular"; SI(O(B4<1;B4>12);"Nota Inválida";"excelente"))) Guía del Usuario (sigue debajo) Página 109 Centro de Capacitación en Informática Operación de Microsoft Excel = B U SCA R V ( . . . ) Esta función permite buscar el valor de una celda en un rango de celdas y retorna el contenido de N columnas a su derecha. Sintaxis de la función BuscarV(...) =BUSCARV(valor-buscado;matriz-comparación;indicador-columnas;ordenado) valor-buscado Es el dato a buscar. matriz-comparación Es el rango de la tabla que contiene el dato a buscar. indicador-columnas Número de la columna donde se encuentra el dato que devolverá la búsqueda. ordenado Se especifica Verdadero (1) o Falso (0), Verdadero cuando la columna que contiene los datos a buscar se encuentra ordena (valor asumido por defecto), y Falso para indicar que la columna referida anteriormente se encuentra desordenada. ☞ Si BUSCARV no puede encontrar el valor buscado y ordenado es VERDADERO, utiliza el valor más grande que sea menor o igual al valor buscado. Si valor buscado es menor que el menor valor de la primera columna de la matriz de comparación, BUSCARV devuelve el valor de error #N/A. Si BUSCARV no puede encontrar el valor buscado y ordenado es FALSO, devuelve el valor de error #N/A. Ejemplo de cómo aplicar la función BuscarV(...) Veamos el caso de una larga lista de clientes que serán ingresados en distintas tablas y varias veces según los controles que se deseen elaborar: Rango nombrado como CodigoClientes, el que se utilizará como matriz de comparación Página 110 Guía del Usuario Centro de Capacitación en Informática Operación de Microsoft Excel Por ejemplo en la planilla visualizada a continuación, se plantea la necesidad de elaborar una tabla a través de la cual se llevará un control de las ventas realizadas a los distintos clientes: A través de las fórmulas del ejemplo, será posible escribir el código de cliente en la celda A4 y Excel hará que aparezca automáticamente el nombre del Cliente y su RUC en las celdas donde se encuentren dichas fórmulas. Este tipo de hojas son útiles para realizar consultas a un listado. Por ejemplo en la celda B4, la fórmula tomará lo que hay en la celda A4, y lo buscará en el rango CodigoClientes. Una vez que lo encuentre, (lo deberá encontrar en la 1ª columna), mostrará lo que se corresponde 2 columnas a su derecha (contándose ella), es decir, el nombre del cliente. Si se observa detenidamente, los tres argumentos utilizados en la función BUSCARV() son: primero la celda donde estará lo que intentamos buscar (el código), luego el rango donde ha de buscarlo, y por último el número de columna que queremos mostrar. Ahora escribiremos la fórmula para la celda C4. Básicamente es igual a la anterior, pero ahora el número de columna donde se localiza el dato que deberá devolver será el 3, es decir mostrará el RUC. Ahora sólo faltará comprobar las dos fórmulas escribiendo cualquier código de la lista de artículos, en la celda A4. Un detalle importante de la función BUSCARV() es que si la lista o rango donde hay que buscar está desordenada, se tendrá que añadir la palabra FALSO o el valor 0 (cero), al final de la fórmula como cuarto parámetro. Como se muestra en el siguiente ejemplo: =BUSCARV(A4;CodigoClientes;2;FALSO) En el caso planteado no hace falta, pues la lista se encuentra ordenada. E j e m p l o d e c o m b i n a c i ó n d e f u n c i o ne s y f ó r m u l a s Con los siguientes ejemplos se tratará de mostrar las posibles soluciones a problemas que se pueden plantear, en la confección de planillas en general. Guía del Usuario Página 111 Centro de Capacitación en Informática Operación de Microsoft Excel Partiendo de una tabla donde se tienen registrados a los socios de un club deportivo (en una hoja nombrada como Socios), se debe resolver la situación de establecer una fórmula que permita obtener de forma automática, el importe de la cuota para cada socio. Tener en cuenta lo siguiente: 1. A los socios se les cobra una cuota mensual dependiendo del sexo y el tipo de actividades que estos pueden desarrollar (dato registrado en la columna Tarifa, donde (1) es para aquellos que pueden practicar actividades básicas como aeróbica y musculación; y (2) es para aquellos que pueden practicar todas las disciplinas del club incluyendo natación, yoga, etc. 2. El importe de las tarifas deberá poder ajustarse con el transcurso del tiempo. En una hoja llamada Tarifas existe una tabla en la que se registran los diferentes importes de cuota por tarifa y sexo. Teniendo en cuenta las tablas existentes, la fórmula a generar para establecer las cuotas de los socios podría ser la siguiente: =SI(Y(C4=1;D4="m");Tarifas!C6;SI(Y(C4=2;D4="m");Tarifas!C7; SI(Y(C4=1;D4="f");Tarifas!C4;Tarifas!C5))) Esta fórmula sería introducida para el primer socio, en la celda E4, pero para poder copiar dicha fórmula a las demás cedas de la columna “Cuota”, debe ser modificada de forma de no perder las referencias a las celdas que importan se mantengan constantes, de la siguiente forma: =SI(Y(C4=1;D4="m");Tarifas!$C$6;SI(Y(C4=2;D4="m");Tarifas!$C$7; SI(Y(C4=1;D4="f");Tarifas!$C$4;Tarifas!$C$5))) Como se puede ver, esta forma de resolver nuestro problema requiere de la escritura de una fórmula muy larga, la cual puede permitir que nos equivoquemos en su ingreso. Página 112 Guía del Usuario Centro de Capacitación en Informática Operación de Microsoft Excel Claro está de que si quisiéramos evaluar la posibilidad de que los datos pudieran ser ingresados de forma incorrecta en la tabla de Socios (como tarifas que sean diferentes a 1 o a 2 y sexos distintos a “m” o a “f”), deberíamos modificar la fórmula, de forma tal que la misma no tome como posible salida para el caso falso del SI() más interno, la tarifa 2 femenina, ya que es la única que no se contempla en toda la fórmula, sino que sale por descarte de todas las contemplaciones anteriores. La fórmula sería aún más extensa, como la que se muestra a continuación: =SI(Y(C4=1;D4="m");Tarifas!$C$6;SI(Y(C4=2;D4="m");Tarifas!$C$7; SI(Y(C4=1;D4="f");Tarifas!$C$4;SI(Y(C4=2;D4="f"); Tarifas!$C$5;”sexo o tarifa no válidos”)))) Hay otras formas de resolver nuestro problema, de forma más sencilla y menos extensa que la anterior, como el que se detalla a continuación: Para esto debemos modificar la estructura de la tabla donde se registran los importes (en la hoja Tarifas), del modo como se muestran en la imagen. De esta forma podremos valernos de otras herramientas como la utilización de la siguiente fórmula: Rango nombrado como importes =SI(D4="m";BUSCARV(C4;importes;3);BUSCARV(C4;importes;2)) Esta fórmula que combina dos funciones, compara uno de los posibles valores para el sexo ingresado en la tabla socios (en este caso si es “m”); si corresponde este valor al sexo del socio en cuestión, buscará el dato ingresado en el rango importes (columna Tarifas) definido en la hoja Tarifas, y devolverá lo correspondiente a la tercera columna (masculino), de lo contrario buscará el mismo dato pero en este caso devolverá lo correspondiente para la segunda columna (femenino). Si quisiéramos evaluar la posibilidad de que los datos pudieran ser ingresados de forma incorrecta en la tabla de Socios, de la misma forma que en el ejemplo anterior, deberíamos modificar la fórmula y plantear por ejemplo la siguiente: =SI(O(Y(D4<>"m";D4<>"f");Y(C4<>1;C4<>2));"datos erróneos en socios"; SI(D4="m";BUSCARV(C4;importes;3);BUSCARV(C4;importes;2))) Una variante para el caso de la resolución anterior podría ser el siguiente, donde se cambia el orden de las funciones utilizadas: =BUSCARV(C4;importes;SI(D4="m";3;2)) o contemplando los posibles datos inválidos de la tabla Socios: =SI(O(Y(D4<>"m";D4<>"f");Y(C4<>1;C4<>2));"datos erróneos en socios"; Guía del Usuario Página 113 Centro de Capacitación en Informática Operación de Microsoft Excel BUSCARV(C4;importes;SI(D4="m";3;2))) Lo que hemos visto hasta el momento son posibles soluciones a casos concretos, pero esto no quita que existan otras soluciones para los mismos, dado que ante un problema, Excel nos permite utilizar diversas herramientas y variantes de las mismas, para su solución. ☞ Si se quiere ver como Excel nos permite controlar el ingreso de datos a una planilla de cálculos, de forma de poder obviar el posible ingreso de datos erróneos en la misma y su posterior control en la generación de fórmulas, ver el capítulo “Validación de dato. = F R E CU E N C I A ( . . . ) Esta función permite calcular la frecuencia con que se repiten los valores de un cierto rango y devuelve una matriz vertical de números. Cuenta la cantidad de resultados que se encuentran dentro de un rango. Debe introducirse como una fórmula de matrices debido a que FRECUENCIA() devuelve una matriz. Sintaxis de la función FRECUENCIA(...) =FRECUENCIA(datos;grupos) Datos Es una matriz de o una referencia a un conjunto de valores cuyas frecuencias desea contar. Si datos no contiene ningún valor, FRECUENCIA devuelve una matriz de ceros. Grupos Es una matriz de o una referencia a intervalos dentro de los cuales se desean agrupar los valores del argumento datos. Si grupos no contiene ningún valor, FRECUENCIA devuelve el número de elementos contenido en datos. Una fórmula matricial se introduce después de seleccionar un rango de celdas adyacentes en las que se desea que aparezca el resultado de la distribución, y por último se presiona <Ctrl>+<Shift>+<Enter> para finalizar. ☞ La función FRECUENCIA, pasa por alto celdas en blanco y texto. El número de elementos de la matriz devuelta es uno más que el número de elementos en grupos. Página 114 Guía del Usuario Centro de Capacitación en Informática Operación de Microsoft Excel Ejemplo de cómo aplicar la función Frecuencia() Para aplicar dicha fórmula, nos planteamos la necesidad de registrar la cantidad de ventas hasta determinadas cantidades como se muestra en la tabla del ejemplo. Los pasos a seguir para la incorporación de dicha función, son los siguientes: 1. Seleccionar el rango donde se desea obtener los resultados. En este caso se pinta el rango: C12:C13. 2. Ingresar la fórmula, indicando los dos parámetros (Rango de valores a contar y Rango de valores de Referencia). En este caso: =FRECUENCIA(C3:C8;B12:B13) 3. Presionar las teclas <Ctrl>+<Shift>+<Enter>, para finalizar. En este ejemplo, las celdas correspondientes a grupos serían B12:B13 las que contienen los valores 3000 y 4000. Cuando FRECUENCIA se introduce como una matriz, se cuenta el número de ventas con importes correspondientes a los rangos 0-3000 y 3000-4000. Rango de valores a contar Valores de referencia Resultados Guía del Usuario Fórmula utilizada Página 115 Centro de Capacitación en Informática Operación de Microsoft Excel Página 116 Guía del Usuario Centro de Capacitación en Informática