Tomemos como ejemplo una consulta hecha por un lector: “Tengo una lista de pacientes en una hoja de Excel con distintos campos: documento, nombre, apellido y fecha. En una segunda lista tengo solamente dos columnas: documento y diagnóstico. Uso una función BUSCARV para completar la primera lista con el diagnóstico. El problema es que, cuando un paciente de la primera lista no está en la segunda, la función me da el error #NA. ¿Cómo hago para reemplazar este mensaje de error por algo más elegante?”
Resolución:
La función BUSCARV sirve para extraer datos de una lista. Por ejemplo, supongamos que tenemos una lista de nombre y teléfono en el rango [A2:B10]. En la celda [D1] tenemos un nombre. Obtenemos el teléfono correspondiente a ese nombre con la función =BUSCARV(D1;A2:B10;2;FALSO).
Esta función tiene cuatro argumentos entre los paréntesis:
-El primero es el dato que permite identificar el valor buscado. En este caso, el nombre.
-El segundo es el rango de la tabla que contiene la información por buscar. En este caso, la tabla nombre-teléfono.
-El tercero indica el número de orden de la columna que contiene el dato buscado. En este caso es un 2, porque el teléfono está en la segunda columna de la tabla.
-El cuarto (el valor lógico FALSO) indica que buscamos exactamente ese nombre. Si lo omitimos, la función puede hacer una búsqueda por aproximación, lo que no nos interesa en este caso.
Si el nombre indicado como primer argumento no está en la lista, la función devuelve el mensaje de error #N/A (“not available” o no disponible). Podemos “atajar” ese error. Por ejemplo, con una función condicional que pregunte si el nombre buscado está en la lista: =SI(ESNOD(BUSCARV(D1;A2:B10; 2;FALSO)); “No existe”;BUSCARV(D1;A2:B10 ;2;FALSO))
En esta fórmula usamos la función ESNOD para preguntar si el resultado de la búsqueda es el error No disponible. Si lo es, la función muestra el mensaje “No existe”. En caso contrario (es decir, si no hay error), muestra el resultado de la búsqueda. En las versiones más recientes de Excel podemos usar las funciones
SI.ERROR o SI.ND para obtener una expresión más compacta: =SI.ERROR(BUSCARV(D1;A2:B10; 2;FALSO); “No existe”) = S I . N D (BUSCARV(D1;A2:B10;2;FALSO); “No existe”)
Ambas funciones tienen dos argumentos entre los paréntesis:
-El primero es una expresión por evaluar. En este caso, la función de búsqueda.
-El segundo es el valor que muestra la función si el resultado de la primera expresión es un error.
La función SI.ND apareció en Excel 2013 y reconoce específicamente el error #N/A. La función SI.ERROR es de Excel 2010 y se aplica a cualquier error.