Saltar la navegación

Anidación de funciones

Como ya sabemos, la mayoría de las funciones de Calc precisan argumentos.

Éstos pueden ser valores constantes (un número, una fecha, un texto...) o también referencias a una celda o un rango (B2, J4:L18) que pueden ser relativas, absolutas o mixtas, o incluso una celda o rango con nombre.

Pero a veces uno o más argumentos deberán ser calculados utilizando la misma u otra función.

Como si de unas matrioshka​​s (muñecas rusas) se tratase, nos encontraremos funciones que contienen en su interior como un argumento a otra función (a la que llamamos función anidada).

Esquema de funcion anidada

En el esquema mostrado (algo abstracto, pero que concreta la idea), la FUNCION2, a la que se le pasan dos argumentos, debe pasar su resultado como segundo argumento de la FUNCION1.  El  cuadro inferior del esquema muestra como habrá que formular el cálculo para que se comporte como se desea, reemplazando el segundo argumento ARG_1B por la FUNCION2.

La función anidada será resuelta por Calc en primera instancia, devolviendo su resultado a la función que la anida y que utilizará este valor como argumento.

A lo largo de los siguientes apartados veremos diferentes casos con funciones anidadas; para hacer boca, ahí van unos ejemplos...

Ejemplos de funciones anidadas

 

Indicar beneficios, resultado nulo o pérdidas

Supongamos que dados unos resultados económicos, deseamos que en una celda se muestre un texto indicando de si se han obtenido beneficios, pérdidas o un resultado nulo.

  • Si el resultado es un valor mayor que cero, deberá poner BENEFICIOS
  • Si el resultado es un valor menor que cero, deberá poner PÉRDIDAS
  • Si el resultado es cero, deberá poner RESULTADO NULO

El resultado es un valor numérico que se encuentra en la celda C3 de nuestra hoja. El texto lo queremos mostrar en la celda B6.

Planteamiento de nuestro ejemplo

Para resolver este ejemplo precisaremos del uso de la función SI().

Seguiremos los siguientes pasos:

  • Haremos clic en la celda B6.
  • Invocaremos al asistente de funciones.
  • Seleccionaremos la función SI() y haremos clic en el botón Siguiente >.

Ejemplo de funciones anidadas

  • Haremos clic en el primer argumento, Prueba_lógica, y haremos clic sobre la celda C3 para insertar su referencia; luego teclearemos >0.
  • Haremos clic en el segundo argumento, Valor_si_verdadero, y escribiremos "BENEFICIO".

Ejemplo de funciones anidadas

  • Haremos clic en el tercer argumento, Valor_si_falso; ahora necesitamos insertar una nueva función SI() anidada como tercer argumento en la función anterior, para lo que haremos clic sobre el botón Botón Insertar función insertar función.
  • De nuevo daremos los pasos necesarios para seleccionar la función SI() y haremos clic en el botón Siguiente >.
  • Haremos clic en el primer argumento, Prueba_lógica, y haremos clic sobre la celda C3 para insertar su referencia; luego teclearemos <0.
  • Haremos clic en el segundo argumento, Valor_si_verdadero, y escribiremos "PÉRDIDA".
  • Haremos clic en el tercer argumento, Valor_si_falso, y escribiremos "RESULTADO NULO".

Ejemplo de funciones anidadas

  • Haremos clic sobre el botón Aceptar. El supuesto ha sido resuelto.

Está en plazo o ha vencido el plazo

Disponemos de una lista de datos con unos documentos y su fecha de entrada.

Disponemos en las celdas D1:D3 de unos valores numéricos que definen el año, mes y día límite para considerar si estos documentos han llegado en plazo, o el plazo ya ha vencido.

Necesitamos una función SI() para que compare la fecha del documento con la fecha límite, y escriba en la celda de esa fila "ESTÁ EN PLAZO" si la fecha del documento es menor, o "HA VENCIDO EL PLAZO" en caso contrario.

Como este documento será enviado a un compañero inglés, debemos asegurarnos que la comparación de fechas se hace correctamente, por lo que debemos anidar la función FECHA() dentro de la función SI().

Ejemplo de funciones anidadas

Seguiremos los siguientes pasos:

  • Haremos clic en la celda D7.
  • Invocaremos al asistente de funciones.
  • Seleccionaremos la función SI() y haremos clic en el botón Siguiente >.

Ejemplo de funciones anidadas

  • Haremos clic en el segundo argumento, Valor_si_verdadero, y escribiremos "ESTÁ EN PLAZO".
  • Haremos clic en el tercer argumento, Valor_si_falso, y escribiremos "HA VENCIDO EL PLAZO".

Ejemplo de funciones anidadas

  • Haremos clic en el primer argumento, Prueba_lógica; ahora necesitamos insertar la función FECHA() anidada como primer argumento en la función anterior, para lo que haremos clic sobre el botón Botón Insertar función.
  • Daremos los pasos necesarios para seleccionar la función FECHA() y haremos clic en el botón Siguiente >.
  • Haremos clic en el primer argumento, año, y haremos clic sobre la celda D1 para insertar su referencia.
  • Haremos clic en el segundo argumento, mes, y haremos clic sobre la celda D2 para insertar su referencia.
  • Haremos clic en el tercer argumento, día, y haremos clic sobre la celda D3 para insertar su referencia.

Ejemplo de funciones anidadas

  • Ahora necesitamos volver a la función SI() que contiene a esta función FECHA(); haremos clic en el botón < Anterior las veces necesarias para volver a la edición de esta función, o bien, haremos clic sobre cualquier parte de la función SI en el cuadro Fórmula.

Ejemplo de funciones anidadas

  • Haremos clic en el primer argumento, Prueba_lógica, justo delante de la función FECHA(); y haremos clic sobre la celda B7 para insertar su referencia; luego teclearemos <.

Ejemplo de funciones anidadas

  • Haremos clic sobre el botón Aceptar.

En la celda D7 se ha insertado la fórmula =SI(B7<FECHA(D1;D2;D3);"ESTÁ EN PLAZO";"HA VENCIDO EL PLAZO")

Cuando extendamos la fórmula a las celdas situadas más abajo, las referencias relativas cambiarán; como el desplazamiento es hacia abajo, cambian los números de filas, pero es un efecto que no deseamos excepto para la referencia B7; las otras referencias deben ser fijadas como referencias absolutas.

Por lo tanto, haremos clic sobre la celda D7 y en la barra de fórmulas editaremos la expresión, haciendo que las referencias a las celdas D1, D2 y D3 sean absolutas.

Ejemplo de funciones anidadas

A continuación, extenderemos la fórmula al resto de celdas. El supuesto ha sido resuelto.