Excel-formel: Listan innehåller dubbletter -

Innehållsförteckning

Generisk formel

=SUMPRODUCT(COUNTIF(data,data)-1)>0

Sammanfattning

Innehåller ett intervall dubbla värden? Om du vill testa ett intervall (eller lista) för dubbletter kan du göra det med en formel som använder COUNTIF tillsammans med SUMPRODUCT.

I exemplet finns en lista med namn i intervallet B3: B11. Om du vill testa listan för att se om det finns dubblettnamn kan du använda:

=SUMPRODUCT(COUNTIF(B3:B11,B3:B11)-1)>0

Förklaring

Arbetar inifrån och ut får COUNTIF först ett värde av varje värde i B3: B11 i intervallet B3: B11. Eftersom vi levererar ett område (array) av celler för kriterierna, returnerar COUNTIF en array med räkningar som ett resultat. I exemplet som visas ser denna array ut så här:

(1; 2; 1; 1; 1; 1; 1; 2; 1)

Nästa 1 subtraheras, vilket ger en matris så här:

(0; 1; 0; 0; 0; 0; 0; 1; 0)

Observera att varje 1 i matrisen (dvs. objekt som visas en gång) har konverterats till noll.

Därefter lägger SUMPRODUCT till elementen i denna matris och returnerar resultatet, som i detta fall är siffran 2, som sedan testas för ett> 0-värde.

Varje gång en lista innehåller dubbletter kommer det att finnas minst två 1 i arrayen som summeras av SUMPRODUCT, så ett slutresultat av TRUE betyder att listan innehåller dubbletter.

Hantera tomma celler

Tomma celler i intervallet kommer att få formeln ovan att generera felaktiga resultat. För att filtrera bort tomma eller tomma celler kan du använda följande alternativ:

=SUMPRODUCT((COUNTIF(list,list)-1)*(list""))>0

Här använder vi den logiska uttryckslistan "" för att tvinga alla värden som är associerade med tomma celler till noll.

Bra länkar

Kontrollista för dubblettnummer (Chandoo)

Intressanta artiklar...