Validación de datos de Excel usando expresións regulares (Regex)

  • Comparte Isto
Michael Brown

O titorial mostra como facer a validación de datos en Excel usando expresións regulares coa axuda dunha función RegexMatch personalizada.

Cando se trata de restrinxir a entrada do usuario nas follas de cálculo de Excel, Validación de datos é indispensable. Queres permitir só números ou datas nunha determinada cela? Ou limitar os valores do texto a unha lonxitude específica? Ou quizais non permitir tempos fóra dun determinado intervalo? Non hai problema, todo isto pódese facer facilmente con criterios de validación predefinidos ou personalizados. Pero e se quero permitir só enderezos de correo electrónico válidos ou cadeas que coincidan cun patrón específico? Ai, iso non é posible. Regex dis? Hmm... iso pode funcionar!

    Como facer a validación de datos de Excel con Regex

    Lamentablemente, ningunha das funcións integradas de Excel admite regexes e a validación de datos non é excepción. Para poder validar a entrada de cela mediante expresións regulares, primeiro debes crear unha función Regex personalizada. Outra complicación é que as funcións definidas polo usuario de VBA non se poden servir directamente para a validación de datos; necesitarás un mediador en forma de fórmula nomeada.

    Considerando o anterior, describamos brevemente os pasos a seguir. para validar datos en Excel usando regex:

    1. Cree unha función Regex personalizada que comprobe se un valor de entrada coincide cunha expresión regular.
    2. Define un nome para a súa fórmula Regex.
    3. Configure unha regra de validación de datos baseada na fórmula nomeada.
    4. Copie oconfiguración de validación a tantas celas como queiras.

    Paréceme un plan? Imos tentar implementalo na práctica!

    Validación de datos de Excel mediante expresións regulares personalizadas

    Este exemplo aborda un caso moi común: como permitir só os valores dun patrón específico.

    Supoño que garda algúns códigos SKU na súa folla de traballo e quere asegurarse de que só os códigos que coincidan cun determinado patrón entran na lista. Sempre que cada SKU estea formado por 2 grupos de caracteres separados por un guión, o primeiro grupo con 3 letras maiúsculas e o segundo grupo, 3 díxitos, podes identificar tales valores mediante a expresión regular a continuación.

    Patrón. : ^[A-Z]{3}-\d{3}$

    Ten en conta que o inicio (^) e o final ($) da cadea están ancorados, polo que non hai outros caracteres que no pódese introducir un patrón nunha cela.

    1. Engade unha función de coincidencia de regex personalizada

    Comece inserindo a función de coincidencia de regex no teu libro de traballo. O código xa está escrito polos nosos gurús de Excel, polo que só precisa copialo desde a páxina da ligazón anterior e pegalo no seu editor VBA.

    Aquí está a sintaxe da función para a súa referencia:

    RegExpMatch(texto , patrón, [match_case])

    Onde:

    • Texto (obrigatorio) - unha cadea de orixe (no noso contexto - unha cela validada).
    • Patrón (obrigatorio): unha expresión regular para coincidir.
    • Match_case (opcional) - tipo de coincidencia. VERDADEIRO ou omitido - maiúsculas -sensíbel; FALSO: non distingue entre maiúsculas e minúsculas.

    Consello. Se es usuario da nosa Ultimate Suite, podes facer a validación de datos Regex en Excel sen engadir ningún código VBA aos teus cadernos de traballo. Só ten que aproveitar unha función personalizada AblebitsRegexMatch incluída coas nosas ferramentas de regex.

    2. Crea unha fórmula con nome

    Na túa folla de traballo de destino, selecciona a cela A1 (independentemente do seu contido e sen importar a cela que realmente vas validar), preme Ctrl + F3 para abrir o Xestor de nomes e define un nome. para esta fórmula:

    =RegExpMatch(Sheet1!A1, "^[A-Z]{3}-\d{3}$")

    Ou pode introducir a expresión regular nalgunha cela (A2 neste exemplo) e proporcionar $A$2 ao segundo argumento:

    =RegExpMatch(Sheet1!A1, Sheet1!$A$2)

    Para que a fórmula funcione correctamente, asegúrese de usar unha referencia relativa para o argumento texto (A1) e unha referencia absoluta para o patrón ($A$2).

    Dado que a nosa fórmula está destinada a validar os números de SKU, poñémoslle o nome correspondente: Validate_SKU .

    Nota importante! Ao definir a fórmula, comprobe que o primeiro argumento fai referencia á cela seleccionada actualmente , se non, a fórmula non funcionará. Por exemplo, se a cela A1 está seleccionada na folla, pon A1 no primeiro argumento (segundo as nosas recomendacións); se se selecciona B2, use B2 para o primeiro argumento, e así un. Realmente non importa a referencia concreta que use sempre que coincida coa cela seleccionada actualmente.

    Para o paso a paso.instrucións, consulte Como facer unha fórmula con nome en Excel.

    3. Configurar a validación de datos

    Seleccione a primeira cela a verificar (A5 no noso caso) e faga unha regra de validación de datos personalizada baseada na fórmula nomeada. Para iso, faga o seguinte:

    1. Faga clic na pestana Datos > Validación de datos .
    2. Na sección Permitir lista despregable, seleccione Personalizado .
    3. Introduza a fórmula a continuación na caixa correspondente.

      =Validate_SKU

    4. Desmarca a opción Ignorar o espazo en branco , se non, a túa regra non funcionará.

    Opcional, podes escribir unha mensaxe de erro personalizada que se mostrará cando se introducen datos non válidos nunha cela.

    Se cres que necesitas os pasos detallados, aquí tes: Como configurar a validación de datos personalizada en Excel.

    4. Copiar a validación de datos a máis celas

    Para copiar a configuración de validación a máis celas, isto é o que cómpre facer:

    1. Seleccione a cela coa validación de datos e prema Ctrl + C para cópiao.
    2. Selecciona outras celas que queres validar, fai clic co botón dereito nelas, fai clic en Pegar especial e escolla a opción Validación .
    3. Fai clic en Aceptar .

    Pódese atopar máis información en Como copiar a validación de datos.

    Agora, cada vez que alguén intente introducir un SKU non válido nalgunha das celas validadas, o seguinte Aparecerá unha mensaxe de aviso:

    Validación de correo electrónico con Regex

    Para realizar a validación de correo electrónico, inicieescribindo unha expresión regular que coincida cun enderezo de correo electrónico.

    Patrón : ^[\w\.\-]+@[A-Za-z0-9]+[A-Za -z0-9\.\-]*[A-Za-z0-9]+\.[A-Za-z]{2,24}$

    Para a explicación detallada da sintaxe, por favor consulte Regex para coincidir con enderezos de correo electrónico válidos.

    E agora, especifique os criterios de validación realizando os pasos xa coñecidos:

    1. Introduza a expresión regular anterior en B2.
    2. Seleccione a cela A1 e defina un nome chamado Validar_correo electrónico que se refira a:

      =RegExpMatch(Sheet1!A1, Sheet1!$B$2)

    3. Para a cela B5, aplique a validación de datos personalizada mediante a seguinte fórmula. É esencial que a opción Ignorar o branco non estea seleccionada.

      =Validate_Email

      Ademais, pode configurar unha mensaxe de erro personalizada que solicite ao usuario que introduza un enderezo de correo electrónico válido.

    4. Copie a regra nas celas de abaixo.

    Se un enderezo de correo electrónico que introduza nunha cela validada non coincide cun patrón de expresión regular, a seguinte alerta emerxente:

    Validación de contrasinais usando expresións regulares

    Ao usar expresións regrais para a validación de contrasinais, o primeiro que hai que decidir é exactamente o que debe comprobar a súa expresión regular. Aquí tes algúns exemplos que poden indicarche o camiño correcto.

    O contrasinal debe ter polo menos 6 caracteres e só pode conter letras (maiúsculas ou minúsculas) e díxitos:

    Patrón : ^[A-Za-z0-9]{6,}$

    O contrasinal debe ter un mínimo de 6 caracteres e incluír polo menos unha letra eun díxito:

    Patrón : ^(?=.*[A-Za-z])(?=.*\d)[A-Za-z\d]{6 ,}$

    O contrasinal debe ter como mínimo 6 caracteres e incluír polo menos unha letra maiúscula, unha minúscula e un díxitos:

    Patrón : ^(?= .*[A-Z])(?=.*[a-z])(?=.*\d)[A-Za-z\d]{6,}$

    O contrasinal debe ter como mínimo 6 caracteres longo e inclúe polo menos unha letra, un díxitos e un carácter especial:

    Patrón : ^(?=.*[A-Za-z])(?=.*\d )(?=.*[@$!%*#?&_-])[A-Za-z\d@$!%*#?&_-]{6,}$

    Co padrón establecido, pode pasar á configuración da validación de datos:

    1. Introduza o seu contrasinal regex en C2.
    2. Seleccione a cela A1 e cree unha fórmula denominada Validate_Password :

      =RegExpMatch(Sheet1!A1, Sheet1!$C$2)

    3. Para a cela C5, cree unha regra de validación personalizada coa seguinte fórmula. Lembra desmarcar a caixa de verificación Ignorar o branco .

      =Validate_Password

    4. Copia a regra en tantas celas como queiras.

    Agora podes engadir novos contrasinais á lista con seguridade. Se unha cadea de entrada non coincide coa expresión regular, a seguinte alerta recordarache que tipos de valores se aceptan:

    A validación de datos regex non funciona

    Se a validación de datos regex non funciona no teu Excel , o máis probable é que se deba a un dos seguintes motivos.

    Falta a función RegExpMatch

    Antes de aplicar a validación de datos, asegúrate de inserir o código da función RegExpMatch no teu libro de traballo.

    Regular incorrectoexpresión

    Para asegurarse de que a súa expresión regular funciona como se espera, pode introducir unha fórmula RegExpMatch nalgunha cela e examinar os resultados. Para obter máis información, consulte Correspondencia de expresións regulares de Excel con exemplos.

    Para analizar e depurar as súas expresións regulares, pode utilizar servizos gratuítos de proba de expresións regulares en liña, como RegEx101 ou RegExr.

    Fórmula con nome incorrecto

    Un motivo moi común de falla de validación de datos é unha fórmula denominada Regex que fai referencia a unha cela incorrecta. En todos os exemplos, recomendamos definir unha fórmula referida a A1:

    =RegExpMatch(A1, regex)

    Isto só funciona se a cela A1 está activa cando se define un nome e un <15 Úsase>referencia relativa (sen o signo $).

    A idea é que unha referencia relativa especificada na fórmula (A1) cambiará automaticamente en función da posición relativa da cela validada. Noutras palabras, a cela A1 elíxese só por comodidade e coherencia. De feito, pode seleccionar a cela B1 e referirse a B1, seleccionar a cela C1 e referirse a C1, etc. O principal é que a cela referenciada debe ser a cela activa .

    Para comprobar se a fórmula nomeada é correcta, seleccione calquera cela da súa folla de traballo, abra o Nome xestor e vexa a que cela apunta a fórmula. Se se refire á cela seleccionada actualmente, a fórmula é correcta. En caso contrario, deberías cambiar a referencia no primeiro argumento.

    Na captura de pantallaa continuación, selecciona a cela A7, o que significa que unha fórmula con nome debería ter A7 no primeiro argumento. O segundo argumento ($A$2) refírese á expresión regular; suponse que esta referencia permanece constante, polo que está bloqueada co signo $.

    Opción Ignorar en branco seleccionada

    Ao configurar unha regra de validación de datos personalizada, é importante desmarcar a caixa de verificación Ignorar o branco . En caso contrario, a regra non funcionará polo seguinte motivo:

    Se non se atopa unha coincidencia, a función RegExpMatch devolve FALSE. Coa opción Ignorar o espazo en branco seleccionada, FALSO equivale a un espazo en branco e ignórase.

    Unha solución alternativa indica explícitamente que a fórmula debe devolver VERDADEIRO:

    =RegExpMatch(…)=TRUE

    Así é como facer a validación de datos en Excel usando expresións regulares. Grazas por ler e espero verte no noso blog a vindeira semana!

    Caderno de prácticas para descargar

    Exemplos de validación de datos regex (ficheiro .xlsm)

    Michael Brown é un entusiasta da tecnoloxía dedicada á súa paixón por simplificar procesos complexos mediante ferramentas de software. Con máis dunha década de experiencia na industria tecnolóxica, perfeccionou as súas habilidades en Microsoft Excel e Outlook, así como en Follas de cálculo e Documentos de Google. O blog de Michael está dedicado a compartir o seu coñecemento e experiencia con outros, proporcionando consellos e titoriais fáciles de seguir para mellorar a produtividade e a eficiencia. Tanto se es un profesional experimentado como un principiante, o blog de Michael ofrece valiosas ideas e consellos prácticos para sacar o máximo proveito destas ferramentas de software esenciais.