He creado una hoja de cálculo de Google (que actúa como una base de datos) que tiene numerosas columnas, siendo el nombre una de ellas, y quería asegurarme de que el campo de nombre sea siempre único y que no se pueda crear una fila si el campo de nombre es el mismo que otro fila.
Esencialmente quiero crear una clave primaria para una base de datos. ¿Alguien sabe cómo hacer esto en las hojas de cálculo de Google?
Si ayuda, creé un formulario para ir con la hoja de cálculo de Google (base de datos) que ingresará los datos en la hoja y me encantaría asegurarme de que un usuario no ingrese el mismo nombre que otra persona en la lista.
google-sheets
Rubén
fuente
fuente
Respuestas:
Si coloca esto como una fórmula personalizada para la regla de validación de datos para la columna A, la columna A rechazará todos los duplicados.
fuente
A1
? ¿Debo cambiarloA2
si mis datos comienzan en la segunda fila?No tengo una solución si insiste en usar un formulario, pero de lo contrario tengo una solución muy simple: Digamos que la columna única es A. Luego crea la siguiente regla de validación de datos en A2 (el primer registro después del encabezado) :
=COUNTIF($A$1:$A$999,A2)<=1
. Luego, copie la celda y seleccione la columna completa, haga clic con el botón derecho, expanda el submenú especial Pegar y haga clic en Pegar validación de datos solamente . ¡Eso es!fuente
Está solicitando lo contrario de la validación de datos de una lista. En efecto, desea que la validación de datos falle, en lugar de tener éxito, si el valor está en la lista. Esto no es posible con la validación de datos, pero un script puede hacerlo.
Considere la siguiente secuencia de comandos. Este script monitorea todas las ediciones y muestra un cuadro de mensaje cuando un valor de celda duplica cualquier otro valor de celda en la misma columna.
Habrá varios refinamientos prácticos necesarios. Por ejemplo, puede optar por monitorear solo ciertas columnas, y puede optar por tomar medidas adicionales, como eliminar el valor de la celda. Es posible que necesite un manejo especial para los valores en blanco (faltantes). Pero esto le brinda la técnica básica que le permitirá validar.
Actualizar:
Para elaborar la respuesta original, pensé que agregaría algunas de las validaciones que uso personalmente que se mencionaron en la respuesta.
// Aquí hay una función que uso para asegurar que solo se edite una celda.
Para usarlo, simplemente omita la validación si se edita más de una celda
También puede omitir la validación si la fila no es la primera fila:
Nota: No puedo recordar la parte superior de mi cabeza si el conteo de filas comienza en 0 o 1, por lo que este código puede tener un error
La clave para las validaciones de onEdit es salir lo antes posible para ahorrar de cómputos innecesarios. La salida más rápida de una función es una declaración de devolución vacía.
fuente