Forhindre Excel-duplikater - Excel-tip

Indholdsfortegnelse
Hvordan i Excel kan jeg sikre mig, at duplikat af fakturanumre ikke er indtastet i en bestemt Excel-kolonne?

I Excel 97 kan du bruge den nye datavalideringsfunktion til at gøre dette. I vores eksempel indtastes fakturanumrene i kolonne A. Sådan konfigureres det for en enkelt celle:

Data validering
  • Den næste celle, der skal indtastes, er A9. Klik i celle A9, og vælg Data> Validering i menuen.
  • I rullemenuen "Tillad:" skal du vælge "Brugerdefineret"
  • Indtast denne formel nøjagtigt, hvordan den ser ud: =ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))
  • Klik på fanen Fejladvarsel i dialogboksen Datavalidering.
  • Sørg for, at feltet "Vis alarm" er markeret.
  • For stil :, vælg Stop
  • Indtast en titel med "Ikke unik værdi"
  • Indtast en meddelelse om "Du skal indtaste et unikt fakturanummer."
  • Klik på "OK"

Du kan teste det. Indtast en ny værdi, siger 10001 i celle A9. Intet problem. Men prøv at gentage en værdi, siger 10088, og følgende vises:

Meddelelse om datavalideringsfejl

Den sidste ting at gøre er at kopiere denne validering fra celle A9 til de andre celler i kolonne A.

  • Klik i kolonne A, og vælg Rediger> kopiér for at kopiere cellen.
  • Vælg et stort udvalg af celler i kolonne A. Måske A10: A500.
  • Vælg Rediger, Indsæt speciel. I dialogboksen Indsæt speciel skal du vælge "Validering" og klikke på OK. Valideringsreglen, som du indtastede fra celle A9, kopieres til alle cellerne ned til A500.

Hvis du klikker i celle A12 og vælger datavalidering, vil du se, at Excel ændrede valideringsformlen til at være =ISNA(VLOOKUP(A12,A$1:A11,1,FALSE))Det er alt hvad du behøver at vide for at få det til at fungere. For de af jer, der ønsker at vide mere, vil jeg forklare på engelsk, hvordan formlen fungerer.

=ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))

Vi sidder i celle A9. Vi fortæller Vlookup-funktionen at tage værdien af ​​den celle, vi lige har indtastet (A9) og forsøge at finde et match i cellerne, der spænder fra A $ 1 til A8. Det næste argument, 1, fortæller Vlookup, at når der findes et match, der fortæller os dataene fra den første kolonne. Endelig siger False i vlookup, at vi kun leder efter nøjagtige matches. Her er trick nr. 1: Hvis VLOOKUP finder et match, returnerer det en værdi. Men hvis den ikke finder et match, returnerer den den specielle værdi af "# N / A". Normalt er disse # N / A-værdier dårlige ting, men i dette tilfælde VIL vi have et # N / A. Hvis vi får et # N / A, så ved du, at denne nye post er unik og ikke matcher noget over den. En nem måde at teste, om en værdi er # N / A, er at bruge funktionen ISNA (). Hvis noget inde i ISNA () evalueres til et # N / A, får du en SAND. Så,når de indtaster et nyt fakturanummer, og det ikke findes i listen over cellen, returnerer vlookup et # N / A, hvilket får ISNA () til at være sandt.

Den anden smule trickery er i det andet argument for Vlookup-funktionen. Jeg var omhyggelig med at specificere A $ 1: A8. Dollartegnet før 1 fortæller Excel, at når vi kopierer denne validering til andre celler, skal det altid begynde at se i cellen i den aktuelle kolonne. Dette kaldes en absolut adresse. Jeg var lige så forsigtig med ikke at sætte et dollartegn før 8 i A8. Dette kaldes en relativ adresse og fortæller Excel, at når vi kopierer denne adresse, skal den stoppe med at se i cellen lige over den aktuelle celle. Derefter, når vi kopierer valideringen og ser på valideringen for celle A12, viser det andet argument i vlookup korrekt A $ 1: A11.

Der er to problemer med denne løsning. For det første fungerer det ikke i Excel 95. For det andet udføres valideringerne kun på celler, der ændres. Hvis du indtaster en unik værdi i celle A9, og derefter går op igen og redigerer celle A6 for at være den samme værdi, som du indtastede i A9, vil valideringslogikken i A9 ikke blive påberåbt, og du vil ende med duplikatværdier i dit regneark.

Den gammeldags metode, der bruges i Excel 95, vil løse begge disse problemer. I den gamle metode ville du have valideringslogikken i en midlertidig kolonne B. For at konfigurere dette skal du indtaste følgende formel i celle B9: =ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))Kopier denne formel fra B9. Indsæt det i cellerne B2: B500. Når du nu indtaster fakturanumre i kolonne A, viser kolonne B SAND, hvis fakturaen er unik, og FALSK, hvis den ikke er unik.

Interessante artikler...