Anpassad datavalidering i Excel: formler och regler

  • Dela Detta
Michael Brown

I handledningen visas hur du skapar egna regler för datavalidering i Excel. Du hittar några exempel på E Formler för xcel-datavalidering för att tillåta endast siffror eller textvärden i vissa celler, eller endast text som börjar med vissa tecken, tillåta unika data som förhindrar dubbletter och mycket mer.

I gårdagens handledning började vi titta på Excel-datavalidering - vad dess syfte är, hur den fungerar och hur du använder inbyggda regler för att validera data i dina kalkylblad. I dag ska vi ta ett steg längre och prata om de praktiska aspekterna av anpassad datavalidering i Excel samt experimentera med en handfull olika valideringsformler.

    Hur man skapar anpassad datavalidering med en formel

    Microsoft Excel har flera inbyggda regler för validering av data för siffror, datum och text, men de täcker bara de mest grundläggande scenarierna. Om du vill validera celler med dina egna kriterier skapar du en anpassad valideringsregel baserad på en formel. Så här gör du:

    1. Välj en eller flera celler som ska valideras.
    2. Öppna dialogrutan Validering av data. Klicka på Validering av data på knappen på Uppgifter på fliken Verktyg för data eller tryck på tangentsekvensen Alt> D> L (varje tangent ska tryckas in separat).
    3. På den Inställningar på fliken Validering av data dialogfönstret, välj Anpassad i den Tillåt och ange din formel för datavalidering i rutan Formel box.
    4. Klicka på OK .

    Du kan även lägga till ett anpassat inmatningsmeddelande och en felvarning som visas när användaren väljer den validerade cellen eller anger ogiltiga data.

    Nedan hittar du några exempel på anpassade valideringsregler för olika datatyper.

    Observera: Alla Excel-regler för datavalidering, både inbyggda och anpassade, kontrollerar endast nya data som skrivs in i en cell efter att regeln skapats. Kopierade data valideras inte, inte heller de data som matades in i cellen innan regeln skapades. Om du vill fastställa befintliga poster som inte uppfyller dina datavalideringskriterier använder du Cirkel ogiltiga uppgifter som visas i Så här hittar du ogiltiga data i Excel.

    Excel-datavalidering för att endast tillåta siffror

    Överraskande nog finns det ingen av de inbyggda reglerna för datavalidering i Excel som passar för en mycket typisk situation där du måste begränsa användarna till att bara skriva in siffror i specifika celler. Men det kan enkelt göras med en anpassad formel för datavalidering som bygger på funktionen ISNUMMER, som den här:

    = ISNUMMER(C2)

    Där C2 är den översta cellen i det intervall som du vill validera.

    Observera: Funktionen ISNUMBER tillåter alla numeriska värden i validerade celler, inklusive heltal, decimaler, bråk samt datum och tider, som också är siffror i Excel.

    Excel-datavalidering för att tillåta endast text

    Om du är ute efter det motsatta - att endast tillåta textinmatningar i ett visst intervall av celler - kan du skapa en anpassad regel med funktionen ISTEXT, till exempel:

    =ISTEXT(D2)

    Där D2 är den översta cellen i det valda intervallet.

    Tillåt text som börjar med ett visst tecken

    Om alla värden i ett visst intervall ska börja med ett visst tecken eller en viss delsträng kan du göra en Excel-datavalidering baserad på funktionen COUNTIF med ett jokertecken:

    COUNTIF( cell ," text *")

    Om du till exempel vill se till att alla order-ID:n i kolumn A börjar med prefixet "AA-", "aa-", "Aa-" eller "aA-" (som inte tar hänsyn till stor bokstavsskillnader), definierar du en anpassad regel med den här formeln för datavalidering:

    =COUNTIF(A2, "aa-*")

    Valideringsformel med OR-logik (flera kriterier)

    Om det finns två eller fler giltiga prefix, lägg till flera COUNTIF-funktioner så att din Excel-datavalideringsregel fungerar med OR-logiken:

    =COUNTIF(A2,"aa-*")+COUNTIF(A2,"bb-*")

    Formulär för valideringsformel som är känslig för stora bokstäver

    Om teckenkortsättningen spelar roll kan du använda EXACT i kombination med funktionen LEFT för att skapa en formel som tar hänsyn till storleken på de poster som börjar med en viss text:

    EXAKT(VÄNSTER( cell , number_of_chars ), text )

    Om du till exempel vill tillåta endast order-id som börjar med "AA-" (varken "aa-" eller "Aa-" tillåts), använd den här formeln:

    =EXAKT(VÄNSTER(A2,3), "AA-")

    I formeln ovan hämtar LEFT-funktionen de tre första tecknen från cell A2 och EXACT gör en jämförelse mellan stor- och små bokstäver med den hårdkodade delsträngen ("AA-" i det här exemplet). Om de två delsträngarna stämmer exakt överens returnerar formeln TRUE och valideringen godkänns, annars returneras FALSE och valideringen misslyckas.

    Tillåt poster som innehåller viss text

    Om du vill tillåta poster som innehåller specifik text var som helst i en cell (i början, mitten eller slutet) använder du funktionen ISNUMMER i kombination med antingen FIND eller SEARCH, beroende på om du vill ha en matchning som tar hänsyn till storleken eller inte tar hänsyn till storleken:

    • Validering som inte tar hänsyn till stora bokstäver: ISNUMBER(SEARCH( text , cell ))
    • Validering med hänsyn till stora bokstäver: ISNUMBER(FIND( text , cell ))

    Om du vill tillåta endast poster som innehåller texten "AA" i cellerna A2:A6 använder du en av följande formler i vårt exempel:

    Det går inte att skilja mellan stora och små bokstäver:

    =ISNUMBER(SEARCH("AA", A2))

    Skiftlägeskänslig:

    =ISNUMBER(FIND("AA", A2))

    Formlerna fungerar enligt följande logik:

    Du söker efter delsträngen "AA" i cell A2 med hjälp av FIND eller SEARCH, och båda returnerar en position för det första tecknet i delsträngen. Om texten inte hittas returneras ett fel. För alla numeriska värden som returneras som resultat av sökningen returnerar ISNUMBER-funktionen TRUE, och datavalidering är framgångsrik. Om ett fel uppstår returnerar ISNUMBER FALSE, och posten kommer inte att tillåtas i en cell.

    Datavalidering för att endast tillåta unika poster och inte tillåta dubbletter.

    I situationer där en viss kolumn eller ett cellintervall inte får innehålla några dubbletter kan du konfigurera en anpassad regel för datavalidering för att endast tillåta unika poster. För detta kommer vi att använda den klassiska COUNTIF-formeln för att identifiera dubbletter:

    =COUNTIF( sortiment , översta_cell )<=1

    Om du till exempel vill se till att endast unika order-ID:n matas in i cellerna A2 till A6 skapar du en anpassad regel med den här formeln för datavalidering:

    =COUNTIF($A$2:$A$6, A2)<=1

    När ett unikt värde anges returnerar formeln TRUE och valideringen lyckas. Om samma värde redan finns i det angivna intervallet (antal större än 1) returnerar COUNTIF FALSE och valideringen misslyckas.

    Observera att vi låser intervallet med absoluta cellreferenser (A$2:$A$6) och använder en relativ referens för den översta cellen (A2) för att få formeln att justeras korrekt för varje cell i det validerade intervallet.

    Observera: Denna formel för datavalidering är Skiftlägeskänslig Den skiljer inte mellan stora och små bokstäver.

    Valideringsformler för datum och tider

    Inbyggd datumvalidering ger en hel del fördefinierade kriterier för att begränsa användarna till att endast ange datum mellan de två datum du anger, större än, mindre än eller lika med ett visst datum.

    Om du vill ha mer kontroll över datavalidering i dina kalkylblad kan du replikera den inbyggda funktionen med en anpassad regel eller skriva en egen formel som går utöver de inbyggda funktionerna i Excel-datavalidering.

    Tillåt datum mellan två datum

    Om du vill begränsa inmatningen till ett datum inom ett visst intervall kan du antingen använda den fördefinierade datumregeln med kriteriet "mellan" eller skapa en egen valideringsregel med den här generiska formeln:

    AND( cell >= start_datum ), cell <= end_date )

    Var:

    • cell är den översta cellen i det validerade området, och
    • starta och avsluta datum är giltiga datum som anges med funktionen DATE eller referenser till celler som innehåller datum.

    Om du till exempel vill tillåta endast datum i juli månad år 2017 använder du följande formel:

    =AND(C2>=DATE(2017,7,1),C2<=DATE(2017,7,31))

    Du kan också ange startdatum och slutdatum i några celler (F1 och F2 i det här exemplet) och hänvisa till dessa celler i formeln:

    =AND(C2>=$F$1, C2<=$F$2)

    Observera att gränsdatumen är låsta med absoluta cellreferenser.

    Tillåt endast vardagar eller helger

    Om du vill begränsa en användare till att endast ange vardagar eller helger konfigurerar du en anpassad valideringsregel baserad på funktionen WEEKDAY.

    Med hjälp av return_type är satt till 2, returnerar WEEKDAY ett heltal från 1 (måndag) till 7 (söndag). För veckodagar (måndag till fredag) bör resultatet av formeln vara mindre än 6 och för helger (lördag och söndag) större än 5.

    Tillåt endast arbetsdagar :

    VECKODAG( cell ,2)<6

    Tillåt endast helger :

    VECKODAG( cell ,2)>5

    Om du till exempel vill tillåta att endast arbetsdagar skrivs in i cellerna C2:C6 använder du den här formeln:

    =WEEKDAY(C2,2)<6

    Validera datum baserat på dagens datum

    I många situationer vill du använda dagens datum som startdatum för det tillåtna datumintervallet. Använd funktionen TODAY för att få fram det aktuella datumet och lägg sedan till det önskade antalet dagar för att beräkna slutdatumet.

    Om vi till exempel vill begränsa datainmatningen till 6 dagar från och med nu (7 dagar inklusive idag) använder vi den inbyggda datumregeln med formelbaserade kriterier:

    1. Välj Datum i den Tillåt
    2. Välj mellan i den Uppgifter
    3. I Startdatum och skriver in =TODAY()
    4. I Slutdatum och skriver in =TODAY() + 6

    På samma sätt kan du begränsa användarna till att skriva in datum före eller efter dagens datum. För detta väljer du antingen mindre än eller . är större än i den Uppgifter och sedan ange =TODAY() i den Slut datum eller Starta datumrutan, respektive.

    Validera tider baserat på aktuell tid

    Om du vill validera data baserat på aktuell tid använder du den fördefinierade regeln Tid med din egen formel för validering av data:

    1. I Tillåt väljer du Tid .
    2. I Uppgifter väljer du antingen mindre än för att endast tillåta tider före den aktuella tiden, eller är större än för att tillåta tider efter den aktuella tiden.
    3. I Sluttid eller . Starttid (beroende på vilka kriterier du valde i föregående steg), ange en av följande formler:
      • För att validera datum och tider baserat på det aktuella datumet och klockslaget:

        =NOW()

      • För att validera gånger baserat på den aktuella tiden:

        =TIME( TIMME(NU()), MINUT(NU()), SEKUND(NU()))

    Skärmbilden nedan visar en regel som endast tillåter tider som är längre än den aktuella tiden:

    Regeln för validering av anpassade Excel-data fungerar inte

    Om din formelbaserade regel för datavalidering inte fungerar som förväntat finns det tre viktiga punkter att kontrollera:

    • Formeln för datavalidering är korrekt
    • Valideringsformeln hänvisar inte till en tom cell
    • Lämpliga cellreferenser används.

    Kontrollera att formeln för datavalidering i Excel är korrekt

    Till att börja med kan du kopiera din valideringsformel till en cell för att se till att den inte returnerar ett fel som #N/A, #VALUE eller #DIV/0!.

    Om du skapar en anpassad regel ska formeln återge de logiska värdena TRUE och FALSE eller värdena 1 och 0 som motsvarar dem.

    Om du använder ett formelbaserat kriterium i en inbyggd regel (som vi gjorde för att validera tider baserat på den aktuella tiden), kan den också returnera ett annat numeriskt värde.

    Excel-formeln för datavalidering bör inte hänvisa till en tom cell

    I många situationer kan du om du väljer Ignorera tomt när du definierar regeln (är vanligtvis markerad som standard) och en eller flera celler som refereras i formeln är tomma, tillåts vilket värde som helst i den validerade cellen.

    Här är ett exempel i den enklaste formen:

    Absoluta och relativa cellreferenser i formler för validering av data

    När du skapar en formelbaserad Excel-valideringsregel ska du komma ihåg att alla cellreferenser i formeln är i förhållande till den övre vänstra cellen i det valda intervallet.

    Om du skapar en regel för mer än en cell och om valideringskriterierna är beroende av specifika celler Om du vill använda absoluta cellreferenser (med $-tecknet, t.ex. $A$1), måste du vara noga med att använda absoluta cellreferenser, annars kommer regeln att fungera korrekt endast för den första cellen. För att illustrera detta bättre kan du titta på följande exempel.

    Antag att du vill begränsa datainmatningen i cellerna D2 till D5 till hela tal mellan 1 (lägsta värde) och resultatet av att dela A2 med B2. Du beräknar alltså det högsta värdet med den här enkla formeln =A2/B2 som visas i skärmbilden nedan:

    Problemet är att denna till synes korrekta formel inte fungerar för cellerna D3 till D5 eftersom relativa referenser ändras baserat på en relativ position av rader och kolumner. För cell D3 ändras formeln till =A3/B3 , och för D4 blir det =A4/B4 , gör datavalidering helt fel!

    Om du vill rätta formeln skriver du bara "$" före kolumn- och radreferenserna för att låsa dem: =$A$2/$B$2 Eller tryck på F4 för att växla mellan olika referenstyper.

    Om du vill validera varje cell utifrån sina egna kriterier kan du använda relativa cellreferenser utan $-tecken för att få formeln att justeras för varje rad och/eller kolumn:

    Som du ser finns det ingen "absolut sanning", samma formel kan vara rätt eller fel beroende på situationen och din specifika uppgift.

    Så här använder du datavalidering i Excel med dina egna formler. För att få en bättre förståelse kan du ladda ner vår exempelarbetsbok nedan och undersöka regelinställningarna. Jag tackar dig för att du läste och hoppas att vi ses på vår blogg nästa vecka!

    Arbetsbok för övning för nedladdning

    Exempel på Excel-datavalidering (.xlsx-fil)

    Michael Brown är en hängiven teknikentusiast med en passion för att förenkla komplexa processer med hjälp av mjukvaruverktyg. Med mer än ett decenniums erfarenhet inom teknikbranschen har han finslipat sina kunskaper i Microsoft Excel och Outlook, samt Google Sheets och Docs. Michaels blogg är tillägnad att dela med sig av sin kunskap och expertis med andra, och tillhandahåller lätta att följa tips och handledningar för att förbättra produktiviteten och effektiviteten. Oavsett om du är en erfaren proffs eller nybörjare, erbjuder Michaels blogg värdefulla insikter och praktiska råd för att få ut det mesta av dessa viktiga programvaruverktyg.