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?
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?
Respostas:
Tente o seguinte:
Custom formula is
=countif(A:A,A1)>1
(ou mude A
para a coluna escolhida)A1:A100
).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
.
;
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 countif
deve ser a primeira célula do intervalo que você selecionar.
=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.
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:
Format
>Conditional formatting...
Apply to range
, selecione o intervalo ao qual a regra deve ser aplicada.Format cells if
, selecione Custom formula is
no menu suspenso.Por que isso funciona?
COUNTIF(range, criterion)
, comparará todas as células range
com 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, B3
retornará 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 4
retorna 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:
*
) e outra verificação, portanto, ao longo das linhas de ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...)))))
. É o melhor que posso fazer no celular. :)
$A$1:$C$50
- de acordo com as colunas em questão. Gosto mais dessa abordagem genérica do que do zolley.
Resposta de @zolley está certa. Basta adicionar um GIF e etapas para a referência.
Format > Conditional formatting..
Format cells if..
=countif(A:A,A1)>1
campoCustom formula is
A
com sua própria coluna.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á.
Text Contains
, e é nisso que o usuário geralmente clica para acessar o menu suspenso.
=COUNTIF(C:C, C1) > 1
Explicação: O C1
aqui 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, C1
refere-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 C
e 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
).
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
Explicação: Isso destaca apenas se os dois COUNTIF
sã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; é TRUE
apenas se o conteúdo estiver C1
com uma duplicata. ( Lembre-se que C1
efetivamente 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á TRUE
se 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 TRUE
se esta linha tiver duplicatas), isso significa que apenas a primeira ocorrência será destacada.
=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 ( TRUE
se 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) >= 1
inicia o intervalo de pesquisa na linha atualmente avaliada (a C1
na 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).
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.
=COUNTIFS(A:A; A1; B:B; B1)>1