Como destacar a célula se o valor duplicar na mesma coluna da planilha do google?

271

Estou procurando fórmula para célula de destaque da planilha do google se o valor duplicar na mesma coluna

alguém pode me ajudar para esta consulta?

user3331309
fonte

Respostas:

474

Tente o seguinte:

  1. Selecione a coluna inteira
  2. Clique em Formatar
  3. Clique em Formatação condicional
  4. Clique em Adicionar outra regra (ou edite a existente / padrão)
  5. Defina Formatar células se :Custom formula is
  6. Defina o valor como: =countif(A:A,A1)>1(ou mude Apara a coluna escolhida)
  7. Defina o estilo de formatação.
  8. Verifique se o intervalo se aplica à sua coluna (por exemplo, A1:A100).
  9. Clique em Concluído

Qualquer coisa escrita nas células A1: A100 será verificada e, se houver uma duplicata (ocorre mais de uma vez), ela será colorida.

Para localidades que usam vírgula ( ,) como separador decimal, o separador de argumentos provavelmente é um ponto-e-vírgula ( ;). Ou seja, tente =countif(A:A;A1)>1:, em vez disso.

Para várias colunas, use countifs.

zolley
fonte
50
No novo Planilhas Google, você pode usar a versão de várias colunas COUNTIFS. Use desta maneira se duplicatas forem uma combinação de mais colunas #=COUNTIFS(A:A; A1; B:B; B1)>1
Christiaan Westerbeek /
6
o final ;resulta em um erro de "fórmula inválida" para mim. Apenas removê-lo fez o truque. Também tenha cuidado: a célula que você especificar como segundo argumento da countifdeve ser a primeira célula do intervalo que você selecionar.
Edelans
11
Funciona. Mas por que? Supondo que A1 seja um critério para a equação, essa fórmula não compara todas as células no intervalo a A1?
precisa saber é o seguinte
9
@mafonya, a fórmula personalizada é uma fórmula genérica que deve ser lida como aplicável à primeira célula. Todas as referências serão adaptadas para cada célula no intervalo selecionado. Por exemplo, ao verificar a célula B2, a fórmula se tornará internamente =countif(B:B,B2)>1. Isso permite que você faça uma formatação bastante avançada ao usar referências de célula absolutas versus relativas.
asoundmove
14
Como observação lateral, se você quiser aplicá-lo a toda a coluna, poderá usar a fórmula = countif (A: A, A: A)> 1 Isso significa que não se aplicará apenas à célula A1, mas A4 e A8, se forem iguais (duplicado). Agora, A4 e A8 serão formatados.
BBking 3/03/16
68

Embora a resposta do zolley seja perfeitamente adequada para a pergunta, aqui está uma solução mais geral para qualquer faixa, além de uma explicação:

    =COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1

Observe que neste exemplo eu usarei o intervalo A1:C50. O primeiro parâmetro ( $A$1:$C$50) deve ser substituído pelo intervalo no qual você deseja destacar duplicatas!


para destacar duplicatas:

  1. Selecione todo o intervalo no qual a marcação duplicada é desejada.
  2. No menu: Format>Conditional formatting...
  3. Em Apply to range, selecione o intervalo ao qual a regra deve ser aplicada.
  4. Em Format cells if, selecione Custom formula isno menu suspenso.
  5. Na caixa de texto, insira a fórmula especificada, ajustando o intervalo para corresponder à etapa (3).

Por que isso funciona?

COUNTIF(range, criterion), comparará todas as células rangecom a criterion, que é processada de maneira semelhante às fórmulas. Se nenhum operador especial for fornecido, ele comparará todas as células no intervalo com a célula especificada e retornará o número de células que correspondem à regra (nesse caso, a comparação). Estamos usando um intervalo fixo (com $sinais) para sempre ver o intervalo completo.

O segundo bloco INDIRECT(ADDRESS(ROW(), COLUMN(), 4)),, retornará o conteúdo da célula atual. Se isso foi colocado dentro da célula, os documentos terão chorado por dependência circular, mas, neste caso, a fórmula é avaliada como se estivesse na célula, sem alterá-la.

ROW()e COLUMN()retornará o número da linha e o número da coluna da célula especificada, respectivamente. Se nenhum parâmetro for fornecido, a célula atual será retornada (isso é baseado em 1, por exemplo, B3retornará 3 para ROW()e 2 para COLUMN()).

Então usamos: ADDRESS(row, column, [absolute_relative_mode])para converter a linha e a coluna numéricas em uma referência de célula (como B3. Lembre-se, enquanto estamos dentro do contexto da célula, não sabemos o endereço OU o conteúdo e precisamos do conteúdo para comparar com). O terceiro parâmetro cuida da formatação e 4retorna os INDIRECT()gostos da formatação .

INDIRECT(), pegará uma referência de célula e retornará seu conteúdo. Nesse caso, o conteúdo da célula atual. Então, de volta ao início, COUNTIF()testará todas as células do intervalo contra as nossas e retornará a contagem.

O último passo é fazer a nossa fórmula retornar um boolean, tornando-a uma expressão lógica: COUNTIF(...) > 1. O > 1é usado porque sabemos que há pelo menos uma célula idêntica à nossa. Essa é a nossa célula, que está no intervalo e, portanto, será comparada a si mesma. Portanto, para indicar uma duplicata, precisamos encontrar 2 ou mais células correspondentes às nossas.


Fontes:

Egoísta
fonte
4
Infelizmente isso não funciona para mim. Ele não destaca nada, apesar de haver muitas duplicatas. Não sei por que, parece uma boa solução.
JVC
Isso funciona para mim, mas também destaca células em branco. Existe uma maneira de excluir espaços em branco?
gillespieza
1
@ Amanda - Sim, um pouco de criatividade e é possível. Sou AFK por uma semana, mas me pegue em uma semana. E meia e ficarei feliz em ajudar. A idéia é criar uma instrução AND (usando *) e outra verificação, portanto, ao longo das linhas de ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...))))). É o melhor que posso fazer no celular. :)
Egoísta 05/10
2
Exatamente esta é a solução necessária. Isso funciona como um HASHMAP para identificar duplicatas.
AKh 27/03
1
Funciona encantador, obrigado @Selfish! Economizou-me tempo. Nota: a única coisa a mudar deve ser $A$1:$C$50- de acordo com as colunas em questão. Gosto mais dessa abordagem genérica do que do zolley.
Bold19 05/19
28

Resposta de @zolley está certa. Basta adicionar um GIF e etapas para a referência.

  1. Ir para o menu Format > Conditional formatting..
  2. Encontrar Format cells if..
  3. Adicionar =countif(A:A,A1)>1campoCustom formula is
    • Nota: Altere a letra Acom sua própria coluna.

insira a descrição da imagem aqui

maheshwaghmare
fonte
2
Como posso filtrá-los por cor depois de destacar as duplicatas?
Faisal
@Faisal only with script or addon
player02 /
27

No menu suspenso "O texto contém", selecione "A fórmula personalizada é:" e escreva: "= countif (A: A, A1)> 1" (sem as aspas)

Fiz exatamente o que o zolley propôs, mas deve ser feita uma pequena correção: use "A fórmula personalizada é" em vez de "O texto contém" . E a renderização condicional funcionará.

Captura de tela do menu

Shurik
fonte
1
Não diminuí a votação (acabei de encontrar esta pergunta hoje), mas aqui está um comentário sobre sua resposta, conforme solicitado. Não acho que o ponto-e-vírgula seja necessário na fórmula. Além disso, ainda vejo um menu suspenso no painel de formatação condicional nas folhas do Google. Pelo menos, clico na opção de seleção e um longo conjunto de opções é exibido, o que eu geralmente chamaria de menu suspenso. A opção que aparece inicialmente no menu suspenso é frequentemente Text Contains, e é nisso que o usuário geralmente clica para acessar o menu suspenso.
Paul de Barros
Obrigado Paul, pelo seu comentário. Talvez eu tenha entendido errado: entendi que "O texto contém" (ou "Formatar células se ...") tem um menu suspenso filho "A fórmula personalizada é:". Além disso, "Texto contém" deve ter um valor de substring correspondente, não "= countif (A: A, A1)> 1;". De fato, é outra abordagem.
21416
12

Destaque duplicatas (na coluna C):

=COUNTIF(C:C, C1) > 1

Explicação: O C1aqui não se refere à primeira linha em C. Como esta fórmula é avaliada por uma regra de formato condicional, em vez disso, quando a fórmula é verificada para ver se ela se aplica, C1refere-se efetivamente a qualquer linha que está sendo avaliada atualmente. veja se o destaque deve ser aplicado. ( Então é mais INDIRECT(C &ROW()), se isso significa alguma coisa para você! ). Essencialmente, ao avaliar uma fórmula de formato condicional, qualquer coisa que se refira à linha 1 é avaliada na linha em que a fórmula está sendo executada. ( E sim, se você usa C2, solicita à regra que verifique o status da linha imediatamente abaixo da que está sendo avaliada no momento. )

Portanto, conte as ocorrências do que estiver C1(a célula atual sendo avaliada) que está na coluna inteira Ce se houver mais de 1 delas (ou seja, o valor tem duplicatas), então: aplique o destaque ( porque a fórmula , em geral, avalia comoTRUE ).

Destaque apenas a primeira duplicata:

=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)

Explicação: Isso destaca apenas se os dois COUNTIFsão TRUE(eles aparecem dentro de umAND() ).

O primeiro termo a ser avaliado (o COUNTIF(C:C, C1) > 1) é exatamente o mesmo que no primeiro exemplo; é TRUEapenas se o conteúdo estiver C1com uma duplicata. ( Lembre-se que C1efetivamente se refere à linha atual que está sendo verificado para ver se ele deve ser destacado ).

O segundo termo (COUNTIF(C$1:C1, C1) = 1 ) parece semelhante, mas possui três diferenças cruciais:

Ele não pesquisa a coluna inteira C(como a primeira faz C:C:), mas inicia a pesquisa a partir da primeira linha: C$1 ( $obriga a olhar literalmente para a linha 1, não para a linha que estiver sendo avaliada).

E então interrompe a pesquisa na linha atual que está sendo avaliada C1.

Finalmente diz = 1.

Portanto, somente ocorrerá TRUEse não houver duplicatas acima da linha que está sendo avaliada atualmente (o que significa que deve ser a primeira das duplicatas).

Combinado com o primeiro termo (que será apenas TRUEse esta linha tiver duplicatas), isso significa que apenas a primeira ocorrência será destacada.

Destaque a segunda e seguintes duplicatas:

=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)

Explicação: A primeira expressão é a mesma de sempre ( TRUEse a linha atualmente avaliada for uma duplicata).

O segundo termo é exatamente o mesmo que o último, exceto que é negado: tem um NOT()contorno. Por isso, ignora a primeira ocorrência.

Finalmente, o terceiro termo coleta duplicatas 2, 3 etc. COUNTIF(C1:C, C1) >= 1inicia o intervalo de pesquisa na linha atualmente avaliada (a C1na C1:C). Em seguida, ele avalia apenas TRUE(aplicar destaque) se houver uma ou mais duplicatas abaixo desta (e incluindo esta): >= 1(não deve ser >=apenas o >contrário, a última duplicata será ignorada).

RedYeti
fonte
3

Eu tentei todas as opções e nenhuma funcionou.

Somente scripts de aplicativos do Google me ajudaram.

fonte: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets

Na parte superior do seu documento

1.- vá para ferramentas> editor de scripts

2.- defina o nome do seu script

3.- cole este código:

function findDuplicates() {
  // List the columns you want to check by number (A = 1)
  var CHECK_COLUMNS = [1];

  // Get the active sheet and info about it
  var sourceSheet = SpreadsheetApp.getActiveSheet();
  var numRows = sourceSheet.getLastRow();
  var numCols = sourceSheet.getLastColumn();

  // Create the temporary working sheet
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var newSheet = ss.insertSheet("FindDupes");

  // Copy the desired rows to the FindDupes sheet
  for (var i = 0; i < CHECK_COLUMNS.length; i++) {
    var sourceRange = sourceSheet.getRange(1,CHECK_COLUMNS[i],numRows);
    var nextCol = newSheet.getLastColumn() + 1;
    sourceRange.copyTo(newSheet.getRange(1,nextCol,numRows));
  }

  // Find duplicates in the FindDupes sheet and color them in the main sheet
  var dupes = false;
  var data = newSheet.getDataRange().getValues();
  for (i = 1; i < data.length - 1; i++) {
    for (j = i+1; j < data.length; j++) {
      if  (data[i].join() == data[j].join()) {
        dupes = true;
        sourceSheet.getRange(i+1,1,1,numCols).setBackground("red");
        sourceSheet.getRange(j+1,1,1,numCols).setBackground("red");
      }
    }
  }

  // Remove the FindDupes temporary sheet
  ss.deleteSheet(newSheet);

  // Alert the user with the results
  if (dupes) {
    Browser.msgBox("Possible duplicate(s) found and colored red.");
  } else {
    Browser.msgBox("No duplicates found.");
  }
};

4.- salve e execute

Em menos de 3 segundos, minha linha duplicada estava colorida. Apenas copie e cole o script.

Se você não conhece os scripts do Google Apps, esses links podem ajudá-lo:

https://zapier.com/learn/google-sheets/google-apps-script-tutorial/

https://developers.google.com/apps-script/overview

Eu espero que isso ajude.

JRichardsz
fonte
Esse código pode ser modificado para destacar apenas os campos duplicados na coluna com vermelho em vez da linha completa?
Amr