Criei uma planilha do Google (agindo como um banco de dados) que possui várias colunas, sendo o nome uma delas e queria garantir que o campo de nome seja sempre único e que nenhuma linha possa ser criada se o campo de nome for igual a outro linha.
Essencialmente, quero criar uma chave primária para um banco de dados. Alguém sabe como fazer isso nas planilhas do Google?
Se ajudar, criei um formulário para usar a planilha do Google (banco de dados) que inserirá os dados na planilha e gostaria de garantir que um usuário não insira o mesmo nome que outra pessoa na lista.
google-sheets
Rubén
fonte
fonte
Respostas:
Se você inserir isso como uma fórmula personalizada para a regra de validação de dados da coluna A, a coluna A rejeitará todas as duplicatas.
fonte
A1
significa? Devo alterá-lo paraA2
se meus dados começarem na segunda linha?Não tenho uma solução se você insistir em usar um formulário, mas caso contrário, tenho uma solução muito simples: Digamos que a coluna exclusiva seja A. Em seguida, você cria a seguinte regra de validação de dados em A2 (o 1º registro após o cabeçalho) :
=COUNTIF($A$1:$A$999,A2)<=1
. Em seguida, copie a célula e selecione a coluna inteira, clique com o botão direito do mouse, expanda o submenu colar especial e clique em Colar apenas validação de dados . É isso aí!fonte
Você está pedindo o oposto da validação de dados em uma lista. Na verdade, você deseja que a validação dos dados falhe, em vez de ter êxito, se o valor estiver na lista. Isso não é possível com a validação de dados, mas um script pode fazer isso.
Considere o seguinte script. Este script monitora todas as edições e exibe uma caixa de mensagem quando um valor de célula duplica qualquer outro valor de célula na mesma coluna.
Haverá vários refinamentos práticos necessários. Por exemplo, você pode optar por monitorar apenas determinadas colunas e pode executar ações adicionais, como apagar o valor da célula. Você pode precisar de tratamento especial para valores em branco (ausentes). Mas isso fornece a técnica básica que permitirá validar.
Atualizar:
Para elaborar a resposta original, pensei em adicionar algumas das validações que eu pessoalmente uso mencionadas na resposta.
// Aqui está uma função que eu uso para garantir que apenas uma célula esteja sendo editada.
Para usá-lo, pule a validação se mais de uma célula for editada
Você também pode pular a validação se a linha não for a primeira:
Nota: Não me lembro de nada se a contagem de linhas começar em 0 ou 1, portanto, este código pode ter um erro
A chave para as validações do onEdit é sair o mais cedo possível para economizar em cálculos desnecessários. A saída mais rápida de uma função é uma declaração de retorno vazia.
fonte