Función o expresión Lookup() en Appsheet

La función LOOKUP en AppSheet es una herramienta esencial para recuperar valores específicos de una tabla o conjunto de datos, facilitando la creación de aplicaciones más dinámicas y eficientes.

¿Qué es la función o expresión LOOKUP en AppSheet?

La función LOOKUP permite buscar un valor en una columna específica de una tabla y devolver el valor correspondiente de otra columna en la misma fila. Es especialmente útil cuando se necesita obtener información relacionada sin establecer una relación directa entre tablas.

Sintaxis de la función LOOKUP

La sintaxis básica de LOOKUP es la siguiente:

LOOKUP(valor_a_buscar, tabla, columna_a_buscar, columna_a_devolver)
  • valor_a_buscar: El valor que se desea encontrar en la columna especificada.
  • tabla: El nombre de la tabla donde se realizará la búsqueda.
  • columna_a_buscar: La columna en la que se buscará el valor_a_buscar.
  • columna_a_devolver: La columna cuyo valor se devolverá una vez que se encuentre la coincidencia.

Ejemplo 1: Recuperar información de un cliente.

Supongamos que tenemos una tabla llamada “Clientes” con las siguientes columnas: ID_Cliente, Nombre, Email. Si deseamos obtener el correo electrónico de un cliente específico, podemos utilizar la función LOOKUP de la siguiente manera:

LOOKUP("Juan Pérez", "Clientes", "Nombre", "Email")

Esta expresión buscará el nombre “Juan Pérez” en la columna Nombre de la tabla “Clientes” y devolverá el valor correspondiente de la columna Email.

Ejemplo 2: Uso de LOOKUP para buscar el valor de una columna específica

A veces, en lugar de buscar un valor directamente (como en el primer ejemplo), puedes querer usar la función LOOKUP para recuperar un valor de una columna relacionada que se encuentra en una fila específica de otra tabla.

Escenario

Supongamos que tienes una tabla llamada Productos que tiene las siguientes columnas:

  • ID_Producto (clave primaria)
  • Nombre_Producto (nombre del producto)
  • Precio (precio del producto)

Y otra tabla llamada Pedidos que contiene las siguientes columnas:

  • ID_Pedido (clave primaria)
  • ID_Producto (referencia al producto)
  • Cantidad (cantidad de producto en el pedido)

En este caso, deseas calcular el precio total de un pedido, que es el precio de cada producto multiplicado por la cantidad pedida. Usarás LOOKUP para buscar el precio del producto en la tabla Productos.

Implementación

En la tabla Pedidos, podrías usar la siguiente fórmula para calcular el precio total de cada pedido:

[Cantidad] * LOOKUP([ID_Producto], "Productos", "ID_Producto", "Precio")

Explicación:

  • [Cantidad]: Es la cantidad de producto que se ha pedido.
  • LOOKUP([ID_Producto], "Productos", "ID_Producto", "Precio"): Busca el precio del producto en la tabla Productos, donde el ID_Producto de la tabla Pedidos coincide con el ID_Producto en la tabla Productos.
  • El resultado de esta fórmula te da el precio total de un producto en un pedido, multiplicando la cantidad por el precio recuperado de la tabla Productos.

Ejemplo 3: con la variable [_THIS] en el login con UserSettings

Escenario

Supongamos que tienes una tabla llamada Usuarios con las siguientes columnas:

  • IdUsuario (ID único de cada usuario)
  • Nombre_Usuario (nombre de usuario)
  • Contraseña (contraseña del usuario)

En la tabla UserSettings, almacenamos los valores introducidos por el usuario en dos campos:

  • Usuario (nombre del usuario)
  • Contraseña_Ingresada (contraseña ingresada por el usuario)

Lo que vamos a hacer es usar la función LOOKUP para obtener la contraseña correspondiente del usuario que ha iniciado sesión, compararla con la contraseña ingresada y verificar si el login es exitoso. Esta fórmula la ponemos en el apartado VALID_IF del campo “Contraseña_Ingresada” de usersettings.

Implementación

Si quieres usar la fórmula con [_THIS], lo que hacemos es obtener el valor de Usuario desde UserSettings, y luego buscar la contraseña en la tabla Usuarios usando la función LOOKUP.

Aquí está la fórmula:

[_THIS] = LOOKUP(UserSettings("Usuario"), "Usuarios", "Nombre_Usuario", "Contraseña")

Explicación:

  • [_THIS]: Hace referencia al valor del campo en el que esta fórmula está siendo aplicada. En este contexto, sería el campo donde estamos validando la contraseña (por ejemplo, Contraseña_Ingresada).
  • UserSettings("Usuario“): Es la referencia al valor del campo Usuario en UserSettings, que contiene el nombre del usuario que está intentando iniciar sesión.
  • LOOKUP(UserSettings[Usuario], "Usuarios", "Nombre_Usuario", "Contraseña"): La función LOOKUP busca el valor de Usuario en la columna Nombre_Usuario de la tabla Usuarios y devuelve el valor correspondiente de la columna Contraseña.
    • UserSettings[Usuario] es el valor que estamos buscando.
    • "Usuarios" es la tabla donde realizamos la búsqueda.
    • "Nombre_Usuario" es la columna en la que buscamos el nombre del usuario.
    • "Contraseña" es la columna de donde se obtiene la contraseña.

Flujo del proceso:

  1. El usuario ingresa su Usuario y Contraseña_Ingresada en el formulario de login.
  2. La fórmula compara el valor de la contraseña ingresada (en [_THIS]) con la contraseña almacenada en la tabla Usuarios, usando LOOKUP.
  3. Si la contraseña ingresada es la misma que la almacenada para ese usuario, el resultado de la fórmula será TRUE (login exitoso). Si no, el resultado será FALSE (login fallido).

Consideraciones importantes

  • La función LOOKUP devuelve solo el primer valor que coincide con el valor_a_buscar. Si existen múltiples coincidencias, se seleccionará la primera encontrada.
  • Es fundamental que el valor_a_buscar exista en la columna columna_a_buscar; de lo contrario, la función devolverá un valor en blanco.
  • La función es sensible a mayúsculas y minúsculas, por lo que “Juan Pérez” y “juan pérez” se consideran diferentes.

Aplicaciones comunes de LOOKUP

  • Recuperar información relacionada: Obtener datos asociados a un registro específico, como el correo electrónico de un cliente o el nombre de un producto.
  • Validación de datos: Verificar la existencia de un valor en una tabla antes de realizar una acción, como comprobar si un código de producto existe en el inventario.
  • Cálculos dinámicos: Utilizar valores de otras tablas para realizar cálculos o establecer condiciones en la aplicación.

Carrito de compra