Förhindra Excel-duplikat - Excel-tips

Innehållsförteckning
Hur i Excel kan jag se till att dubbla fakturanummer inte matas in i en viss Excel-kolumn?

I Excel 97 kan du använda den nya datavalideringsfunktionen för att göra detta. I vårt exempel anges fakturanumren i kolumn A. Så här ställer du in det för en enda cell:

Datavalidering
  • Nästa cell som ska matas in är A9. Klicka i cell A9 och välj Data> Validering från menyn.
  • Välj "Anpassad" i listrutan "Tillåt:"
  • Ange denna formel exakt hur den ser ut: =ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))
  • Klicka på fliken Felvarning i dialogrutan Datavalidering.
  • Se till att rutan "Visa varning" är markerad.
  • För stil :, välj Stopp
  • Ange en rubrik med "Icke unikt värde"
  • Ange meddelandet "Du måste ange ett unikt fakturanummer."
  • Klicka på "OK"

Du kan testa det. Ange ett nytt värde, säg 10001 i cell A9. Inga problem. Men försök att upprepa ett värde, säg 10088 så visas följande:

Felmeddelande om datavalidering

Det sista du ska göra är att kopiera denna validering från cell A9 till de andra cellerna i kolumn A.

  • Klicka i kolumn A och välj Redigera> kopiera för att kopiera cellen.
  • Välj ett stort antal celler i kolumn A. Kanske A10: A500.
  • Välj Redigera, Klistra in Special. I dialogrutan Klistra in special väljer du "Validering" och klickar på OK. Valideringsregeln som du angav från cell A9 kopieras till alla celler ner till A500.

Om du klickar i cell A12 och väljer Datavalidering ser du att Excel ändrade valideringsformeln till att vara =ISNA(VLOOKUP(A12,A$1:A11,1,FALSE))Det är allt du behöver veta för att få det att fungera. För dig som vill veta mer kommer jag att förklara på engelska hur formeln fungerar.

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

Vi sitter i cell A9. Vi ber Vlookup-funktionen att ta värdet på cellen som vi just angav (A9) och att försöka hitta en matchning i cellerna som sträcker sig från A $ 1 till A8. Nästa argument, 1, berättar för Vlookup att när en matchning hittas för att berätta data från den första kolumnen. Slutligen säger False i vlookup att vi bara letar efter exakta matchningar. Här är trick nr 1: Om VLOOKUP hittar en matchning returnerar den ett värde. Men om den inte hittar en matchning returnerar den specialvärdet "# N / A". Normalt är dessa # N / A-värden dåliga saker, men i det här fallet VILL vi ha ett # N / A. Om vi ​​får ett # N / A, vet du att den här nya posten är unik och inte matchar något ovanför den. Ett enkelt sätt att testa om ett värde är # Ej tillämpligt är att använda funktionen ISNA (). Om något inuti ISNA () utvärderas till # N / A får du en SANT. Så,när de anger ett nytt fakturanummer och det inte finns i listan ovanför cellen, returnerar vlookup ett # N / A, vilket gör att ISNA () är sant.

Den andra luren är i det andra argumentet för Vlookup-funktionen. Jag var noga med att ange A $ 1: A8. Dollartecknet före 1 berättar för Excel att när vi kopierar denna validering till andra celler bör den alltid börja titta i cellen i den aktuella kolumnen. Detta kallas en absolut adress. Jag var lika noga med att inte sätta ett dollartecken före 8 i A8. Detta kallas en relativ adress och berättar för Excel att när vi kopierar den här adressen ska den sluta titta i cellen strax ovanför den aktuella cellen. Sedan, när vi kopierar valideringen och tittar på valideringen för cell A12, visar det andra argumentet i vlookup korrekt A $ 1: A11.

Det finns två problem med denna lösning. För det första fungerar det inte i Excel 95. För det andra utförs valideringen endast på celler som ändras. Om du anger ett unikt värde i cell A9 och sedan går tillbaka och redigerar cell A6 för att vara samma värde som du angav i A9, anropas inte valideringslogiken i A9 och du kommer att få dubbla värden i ditt kalkylblad.

Den gammaldags metoden som används i Excel 95 kommer att ta itu med båda dessa problem. I den gamla metoden skulle valideringslogiken sitta i en tillfällig kolumn B. För att ställa in detta, ange följande formel i cell B9: =ISNA(VLOOKUP(A9,A$1:A8,1,FALSE))Kopiera den här formeln från B9. Klistra in den i cellerna B2: B500. När du nu anger fakturanummer i kolumn A, visar kolumn B SANT om fakturan är unik och FALSK om den inte är unik.

Intressanta artiklar...