Sto cercando la formula per evidenziare la cella di evidenziazione del foglio di calcolo se il valore è duplicato nella stessa colonna
qualcuno può aiutarmi per favore per questa domanda?
Sto cercando la formula per evidenziare la cella di evidenziazione del foglio di calcolo se il valore è duplicato nella stessa colonna
qualcuno può aiutarmi per favore per questa domanda?
Risposte:
Prova questo:
Custom formula is
=countif(A:A,A1)>1
(o modifica A
la colonna scelta)A1:A100
.).Tutto ciò che è scritto nelle celle A1: A100 verrà controllato e se esiste un duplicato (si verifica più di una volta), verrà colorato.
Per le versioni locali che utilizzano la virgola ( ,
) come separatore decimale, il separatore di argomenti è molto probabilmente un punto e virgola ( ;
). Cioè, prova: =countif(A:A;A1)>1
invece.
Per più colonne, utilizzare countifs
.
;
traduce in un errore "formula non valida" per me. Basta rimuoverlo ha fatto il trucco. Inoltre, fai attenzione: la cella specificata come secondo argomento di countif
dovrebbe essere la prima cella dell'intervallo selezionato.
=countif(B:B,B2)>1
. Ciò consente di eseguire una formattazione piuttosto avanzata quando si utilizzano riferimenti di cella assoluti o relativi.
Mentre la risposta di zolley è perfettamente giusta per la domanda, ecco una soluzione più generale per qualsiasi intervallo, oltre a una spiegazione:
=COUNTIF($A$1:$C$50, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))) > 1
Si noti che in questo esempio userò l'intervallo A1:C50
. Il primo parametro ( $A$1:$C$50
) deve essere sostituito con l'intervallo su cui si desidera evidenziare i duplicati!
per evidenziare i duplicati:
Format
>Conditional formatting...
Apply to range
, seleziona l'intervallo a cui applicare la regola.Format cells if
, seleziona Custom formula is
il menu a discesa.Perché funziona
COUNTIF(range, criterion)
, confronterà ogni cella range
con il criterion
, che viene elaborato in modo simile alle formule. Se non vengono forniti operatori speciali, confronterà ogni cella nell'intervallo con la cella specificata e restituirà il numero di celle che corrispondono alla regola (in questo caso, il confronto). Stiamo utilizzando un intervallo fisso (con$
segni) in modo da visualizzare sempre l'intero intervallo.
Il secondo blocco, INDIRECT(ADDRESS(ROW(), COLUMN(), 4))
restituirà il contenuto della cella corrente. Se questo è stato inserito nella cella, i documenti avrebbero pianto sulla dipendenza circolare, ma in questo caso la formula viene valutata come se fosse nella cella, senza cambiarla.
ROW()
e COLUMN()
restituirà rispettivamente il numero di riga e il numero di colonna della cella specificata. Se non viene fornito alcun parametro, verrà restituita la cella corrente (ad esempio 1, B3
restituirà 3 per ROW()
e 2 perCOLUMN()
).
Quindi usiamo: ADDRESS(row, column, [absolute_relative_mode])
per tradurre la riga e la colonna numerica in un riferimento di cella (come B3
. Ricorda, mentre siamo nel contesto della cella, non sappiamo che sia l'indirizzo O il contenuto e abbiamo bisogno del contenuto per confrontarlo con). Il terzo parametro si occupa della formattazione e 4
restituisce i INDIRECT()
like di formattazione .
INDIRECT()
, prenderà un riferimento di cella e ne restituirà il contenuto. In questo caso, il contenuto della cella corrente. Quindi torna all'inizio, COUNTIF()
testerà ogni cella nell'intervallo contro la nostra e restituirà il conteggio.
L'ultimo passo è fare la nostra formula restituire un valore booleano, rendendolo un'espressione logica: COUNTIF(...) > 1
. La > 1
si usa perché sappiamo che c'è almeno una cella identica alla nostra. Questa è la nostra cella, che è nell'intervallo, e quindi verrà confrontata con se stessa. Quindi, per indicare un duplicato, dobbiamo trovare 2 o più celle corrispondenti alle nostre.
fonti:
*
) e un altro controllo, così lungo le linee di ((COUNTIF(...))*(NOT(ISBLANK(INDIRECT(...current cell...)))))
. Questo è il meglio che posso fare sul cellulare. :)
$A$1:$C$50
- di conseguenza alle colonne in questione. Mi piace questo approccio più generico più di quello di Zolley.
La risposta di @zolley è corretta. Basta aggiungere una Gif e i passaggi per il riferimento.
Format > Conditional formatting..
Format cells if..
=countif(A:A,A1)>1
nel campoCustom formula is
A
con la tua colonna.Dal menu a discesa "Il testo contiene" seleziona "La formula personalizzata è:" e scrivi: "= countif (A: A, A1)> 1" (senza virgolette)
Ho fatto esattamente come proposto da Zolley , ma dovrebbe esserci una piccola correzione: usa "La formula personalizzata è" invece di "Contiene testo" . E quindi il rendering condizionale funzionerà.
Text Contains
menu a discesa è spesso , quindi è quello su cui un utente farebbe generalmente clic per accedere al menu a discesa.
=COUNTIF(C:C, C1) > 1
Spiegazione: Il C1
qui non fa riferimento alla prima riga in C. Poiché questa formula viene valutata da una regola di formato condizionale, invece, quando la formula viene controllata per vedere se si applica, il C1
riferimento effettivo a qualunque riga è attualmente valutata vedere se il momento saliente deve essere applicato. ( Quindi è più simile INDIRECT(C &ROW())
, se questo significa qualcosa per te! ). In sostanza, quando si valuta una formula di formato condizionale, tutto ciò che fa riferimento alla riga 1 viene valutato rispetto alla riga su cui viene eseguita la formula. ( E sì, se usi C2, chiedi alla regola di controllare lo stato della riga immediatamente sotto quella attualmente in corso di valutazione. )
Quindi, dice questo, conta le occorrenze di qualunque cosa sia C1
(la cella corrente in fase di valutazione) che si trova nell'intera colonna C
e se ce ne sono più di 1 (ovvero il valore ha duplicati), allora: applica l'evidenziazione ( perché la formula , nel complesso, valutaTRUE
).
=AND(COUNTIF(C:C, C1) > 1, COUNTIF(C$1:C1, C1) = 1)
Spiegazione: Questo evidenzia solo se entrambi COUNTIF
sono TRUE
(appaiono all'interno di un AND()
).
Il primo termine da valutare (il COUNTIF(C:C, C1) > 1
) è esattamente lo stesso del primo esempio; è TRUE
solo se ciò che è dentro C1
ha un duplicato. ( Ricorda che si C1
riferisce efficacemente alla riga corrente che viene controllata per vedere se deve essere evidenziata ).
Il secondo termine ( COUNTIF(C$1:C1, C1) = 1
) sembra simile ma ha tre differenze cruciali:
Non cerca in tutta la colonna C
(come fa la prima:) C:C
ma invece avvia la ricerca dalla prima riga: C$1
(la $
costringe a guardare letteralmente riga 1
, non in qualunque riga venga valutata).
E quindi interrompe la ricerca nella riga corrente in fase di valutazione C1
.
Finalmente dice = 1
.
Quindi, sarà solo TRUE
se non ci sono duplicati sopra la riga attualmente in fase di valutazione (il che significa che deve essere il primo dei duplicati).
In combinazione con quel primo termine (che sarà solo TRUE
se questa riga ha duplicati) questo significa che verrà evidenziata solo la prima occorrenza.
=AND(COUNTIF(C:C, C1) > 1, NOT(COUNTIF(C$1:C1, C1) = 1), COUNTIF(C1:C, C1) >= 1)
Spiegazione: La prima espressione è la stessa di sempre ( TRUE
se la riga attualmente valutata è un duplicato).
Il secondo termine è esattamente lo stesso dell'ultimo tranne che è negato: ha un NOT()
intorno. Quindi ignora la prima occorrenza.
Infine, il terzo termine raccoglie i duplicati 2, 3 ecc. COUNTIF(C1:C, C1) >= 1
Avvia l'intervallo di ricerca nella riga attualmente valutata (la C1
in C1:C
). Quindi valuta TRUE
(applica l'evidenziazione) solo se ci sono uno o più duplicati sotto questo (e incluso questo): >= 1
(non deve essere >=
solo >
altrimenti l'ultimo duplicato viene ignorato).
Ho provato tutte le opzioni e nessuna ha funzionato.
Mi hanno aiutato solo gli script delle app di Google.
fonte: https://ctrlq.org/code/19649-find-duplicate-rows-in-google-sheets
Nella parte superiore del documento
1.- vai su strumenti> editor di script
2.- imposta il nome del tuo script
3.- incolla questo codice:
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.- salva ed esegui
In meno di 3 secondi, la mia riga duplicata è stata colorata. Basta copiare e incollare la sceneggiatura.
Se non conosci gli script di Google Apps, questi link potrebbero aiutarti:
https://zapier.com/learn/google-sheets/google-apps-script-tutorial/
https://developers.google.com/apps-script/overview
Spero che aiuti.
=COUNTIFS(A:A; A1; B:B; B1)>1