Evitar introducir datos repetidos con validación de datos

Excel cuenta con una herramienta muy funcional, la cual es, Validación de datos, que entre otras cosas nos permite validar la entrada de datos:

  1. Rangos de números.
  2. Fechas.
  3. Horas.
  4. Longitud de texto.
  5. Ingreso de listas.
  6. Funciones personalizadas.

La que nos atañe en este post es la de Función personalizadad. Lo que deseamos es que Excel no nos permita introducir datos repetidos, y que en su lugar nos envíe un aviso personalizado.

Cómo funciona ?

En este caso tenemos nuestro rango que será “A1:A10”. Elegimos todo el rango y nos vamos al menú/pestaña Datos > Validación. En el combo Permitir elegimos Personalizada e introducimos la siguiente fórmula:

=CONTAR.SI($A$1:$A$10,A1)=1

Posteriormente, dentro del mismo formulario elegimos la pestaña Mensaje de entrada y personalizamos nuestro mensaje.

image

La validación nos permite limitar los datos de ingreso

Al momento de ingresar algún dato repetido, Excel nos arrojará un mensaje previamente personalizado donde le indiquemos al usuario acerca de los datos repetidos.

image

Excel nos permite personalizar nuestros mensajes para hacer la labor más dinámica

You may also like...

25 Responses

  1. sebastian says:

    Me da error la formula? por que sera?

    • sergioacamposh says:

      Seguramente algún error de dedo. Primero debes elegir el rango el cual quieres validar, y la fórmula que ingresas debe tener el mismo rango. En en el ejemplo se toma en cuenta el rango A1:A10, y el dato de A1 es al primer celda del rango.

      Cualquier duda, comentas.

  2. Wadsoft says:

    No he probado el ejemplo aun, pero si no me equivoco, solo sirve para que no se repita la primera celda. Que pasa si se repite el 2 o alguna de las otras celdas?
    Esta buena la explicación, gracias.

    • De hecho es para que no te permita capturar datos repetidos en una misma columna, puesto que la lógica es no tener datos repetidos en un CAMPO. El ejemplo no aplica para que tome diferentes columnas.

  3. hernan says:

    saludos amigos de la internet,respecto a la formula de excel de no repetir datos,tengo un problema si me pueden ayudar pasa,cuando ingreso un numero en este caso es cedula,y es nuevo me dice que existe y haci es con todos gracias.soy hernan………

    • La fórmula es esta =CONTAR.SI($A$1:$A$10,A1)=1

      Por favor valida que el formato condicional lo tengas en el mismo rango que pones en la fórmula, en este caso de A1 hasta A10. Si así lo haces, no debe por qué darte error.

  4. hernan says:

    Saludos amigo de la internet,gracias por tu ayuda pero no me funciono con tu formula no se que pasa,llegue a pensar que era el excel 2007 a este lo borre y instale el 2010 fue en vano,no funciona porque no se si yo copio la formula tal cual como la describen.

  5. JORGE PALACIOS says:

    Saludos, sergio me puedes echar una mano es que deseo limitar en mi formulario factura de venta los listbox tengo 4 (cantidad, descripcion, valor unitario , y valor total..)
    lo limitaria a 12 productos como max x factura

    te agradezco mucho tu ayuda

  6. En este caso debes haces una validación de cuántos items tienes en tu Listbox y permitir ingresar más o no.

    El sigiente código te valida la cantidad de items. Básate en este para hacer la condición:

    Private Sub CommandButton5_Click()
    Cuenta = Me.ListBox1.ListCount
    If Cuenta >= 12 Then MsgBox “Tienes más de 12 items”
    End Sub

  7. JORGE PALACIOS says:

    Cuenta = Me.lstCantidad.ListCount
    If Cuenta >= 12 Then MsgBox “Tienes más de 12 items”

    para limitar el listbox donde no me deje ingresar digamos 12 productos, se coloca el codigo en el formulario de agregar producto, y el codigo va en ?
    es que me sale error al colocarlo de esta forma

    Private Sub cmdAgregar_Click()

    If Trim(Me.txtCantidad.Text) = “” Then MsgBox (“Debes ingresar la cantidad!!”): Exit Sub
    If Me.txtPrecio.Text = “” Then MsgBox (“Debes elegir un producto!!”): Exit Sub

    Cuenta = Me.lstCantidad.ListCount
    If Cuenta >= 12 Then MsgBox “Tienes más de 12 items”

    With FRMFACTURA
    .lstCantidad.AddItem (Me.txtCantidad.Text)
    .lstDescripcion.AddItem (Me.cmbProducto.Text)
    .lstValorUnitario.AddItem (Me.txtPrecio.Text)
    .lstValorTotal.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text)))
    .lstIva.AddItem (Me.txtIva.Text)
    .lstCalculoIva.AddItem (Str(Val(Me.txtCantidad.Text) * Val(Me.txtPrecio.Text * Val(Me.txtIva.Text)))) ‘AQUI DEBERIA IR LA FORMULA PARA EL IVA

    End With
    FRMFACTURA.sumarValorTotal
    Me.txtPrecio.Text = “”
    Me.txtIva.Text = “”
    Me.txtCantidad.Text = “”
    Me.cmbProducto.ListIndex = -1
    Me.cmbProducto.SetFocus

    End Sub

  8. El código que te pasé debes agregarlo con una condición IF con todas sus partes, no era pegarla tal cual. Es algo así

    Cuenta = Me.lstCantidad.ListCount
    If Cuenta >= 12 Then MsgBox “Tienes más de 12 items” then
    ‘aquí pones el código o el mensaje que quieres que aparezca cuando son más de 12
    Else
    ‘Aquí ingresas tu código para llenar el Listbox.

  9. JORGE PALACIOS says:

    Saludos Sergio grande grande tu ayuda, muchísimas gracias con este tema… me salio rebn

  10. JORGE PALACIOS says:

    El codigo queda

    Cuenta = .lstCantidad.ListCount
    If Cuenta >= 12 Then MsgBox (“Tienes ya el maximo de (12) productos por factura”): Exit Sub

  11. JORGE PALACIOS says:

    me podrias ayudar
    la autonumeracion se la coloque a la impresion (Hoja IMPRESION [O5]) necesito traer ese dato al formulario txtNFactura y no se me ocurre como

  12. JORGE PALACIOS says:

    Saludos Sergio, me podrias ayudar . quiero saber si puedo manipular tablas dinamicas por medio de vba excel 2010, o si vba excel tiene una herramienta de reportes? algo como un cristal report

  13. jose says:

    Buenas tardes: para un evento realice un formulario con google docs. El problema es saber como hago para que no puedan llenar el formulario (o enviarlo) si por ejemplo el número de documento ya esta cargado. En el resumen de la web los números de documento están en la columna G.
    Además, es posible que al colocar el número de documento duplicado avise que ya existe?, de esta manera evitaría que lo envíen o que se confundan de número y crean que se inscribieron.
    En mis datos pueden ver el formulario
    Muchas gracias

    • No creo que sea posible, ya que Google Docs no maneja macros, además de que el formulario de Google sólo sirve para capturar datos, pero no tiene ninguna validación.

  14. Antonio says:

    Buenas Tardes Sergio, tengo el siguiente problema: Quiero aplicar el ejemplo que expones para una hoja de calculo pero no obtengo el resultado que deseo, es decir, quiero que me aparezca el mensaje de error cuando introduzco un numero que ya existe pero no solo en una columna sino en toda la hoja, ya que poseo una amplia gama de números que identifican a un expediente y por ende, jamás podrá repetirse, podrías ayudarme?? O darme alguna otra forma que aplique a mi problema??
    De antemano Muchas Gracias

    • Será cuestión de aplicar al rango que quieres la misma fórmula que tenga dicho rango. Por ejemplo la fórmula =CONTAR.SI($A$1:$Z$500,A1)=1 inmpide que ingreses datos repeditos en el rango de A1:Z500.

  15. Mora Ramirez Andrés says:

    Saludos, realice todo el proceso y me funcionó bien cuando ingreso datos solo que tengo un problema, cuando copio y pego el mismo dato no me indica que está repetido, solo si lo escribo a pie, si pego no me da el aviso, y el trabajo que tengo que realizar es copiando y pegando para mayor rapides.

  16. chipi-chipi Barrios says:

    Buen día Sergio:
    Realicé el procedimiento ingresando el comando =CONTAR.SI($E$1:$E$1000,E1)=1 con el propósito de que me indique valores repetidos en la columna E, pero me muestra el mensaje de error que personalicé al momento de ingresar cualquier dato aunque no se encuentre repetido. ¿Podrías decirme qué estoy haciendo mal? Mil gracias.

  1. January 12, 2013

    […] Evitar introducir datos repetidos con validación de datos […]

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: