Excel - no permitir repetidos en lista

 
Vista:

no permitir repetidos en lista

Publicado por Mariola (17 intervenciones) el 23/08/2007 17:43:22
Buenas tardes.
Necesitaría saber si es posible que en un listado, excel prohiba incluir cualquier valor que haya sido incluido anteriormente.
Supongo que insertando una formula en validación de celdas.... Pero no consigo averiguar cómo, ya que el listado al ir incrementándose hace que el rango sea variable y además la celda que hay que verificar cada vez es una distinta.
No sé si con un ejemplo es más sencillo:
Tengo una tabla con muchos datos y en la columna Q va un código de referencia, ese código se inserta manualmente y tiene que ser distinto en cada fia.
Sería como asignar una clave única en access.

Muchas gracias de antemano, espero sus respuestas. :)
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:no permitir repetidos en lista

Publicado por mrproper (127 intervenciones) el 23/08/2007 18:21:17
Yo tampoco se gran cosa de este fascinante mundo del excel, pero entiendo ke si en la columna Q tienes ke introducir tu el dato manualmente, en esa misma celda desde luego no puedes hacer esa "especie de control" para ver si esta repetido el codigo de referencia o no. No obstante creo ke en la columna de al lado, en la R o en cualkier otra, podrias poner un CONTAR.SI.

Por ejemplo, suponiendo los codigos desde Q1 a Q10, en la columna R de la fila 10 podrias poner CONTAR.SI (Q1:Q10;Q10). Si le añadimos la condicion con un SI de ke eso tiene ke dar mayor ke 1 para ke el codigo este repetido, ya tienes un control en la celda R para saber si puedes meter ese codigo o no en la celda Q. Algo asi como:

=SI(CONTAR.SI($Q$1:Q10;Q10)>1;"Codigo repetido";"Correcto")

Eso habria ke añadirlo a cada celda de la columna Q. En cuanto a ke el rango es variable a medida ke vas avanzando con las celdas, creo ke lo puedes solucionar facilmente con la funcion INDIRECTO en combinacion con CONTARA. Investiga en la ayuda del excel.

Hasta aki mis conocimientos. Un saludo,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no permitir repetidos en lista

Publicado por José Luis (700 intervenciones) el 23/08/2007 18:46:59
Sin necesidad del INDIRECTO y CONTARA y utilizando los fijadores de referencia, al poner el dato en la columna Q, y en la de al lado la fórmula que indicaba MrProper, pero arreglada.

=SI(CONTAR.SI(Q1:Q$1;Q1)>1;"Codigo repetido";"Correcto")

También se puede hacer casi lo mismo pero utilizando el formato condicional de forma que al poner un dato repetido, quede en color (p.ej. Rojo) para indicar que el dato no es único.

Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no permitir repetidos en lista

Publicado por Mariola (17 intervenciones) el 23/08/2007 23:23:02
Muchísimas gracias a los dos. El formato condicional es el aviso que tengo puesto. Yo quería algo aun más restrictivo. Pero me conformaré.
De nuevo gracias.
¡qué buen invento es esto del foro! he aprendido un monton de cosas con las consultas de los demás.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no permitir repetidos en lista

Publicado por CarLos (14 intervenciones) el 25/08/2007 11:29:28
Esto quizas te pueda ayudar (esta diseñado para detectar repetidos en el rango A2:A1000) y no detecta repeticiones de 0.

Abre el editor de VBA y en la parte HOJA1( sera donde tengas los datos) en el "procedimiento al cambiar seleccion" pega:

Private Sub Worksheet_Change(ByVal Target As Range)
Call CompruebaDup 'Llamada al procedimiento
End Sub

Crea un modulo nuevo y pega:
Sub CompruebaDup()
Dim EntrCom As Variant
Static f As Integer
Set r = Range("A2:A1000") 'Establece rango maximo de datos en columna A1
For n = 1 To r.Rows.Count
If r.Cells(n, 1).Value = Empty Then 'Calcula numero de celdas ocupadas
f = n 'establece contador para bucle
Exit For
End If

Next n

'------------------------------------------------------------------------------

For n1 = 1 To f
EntrCom = Cells(n1, 1).Value 'Almacena valor a comparar mediante bucle

For n2 = 1 To f 'Bucle que compara la variable EntrCom con todos los valores de las celdas
If n1 <> n2 Then 'menos con el suyo
If EntrCom = Cells(n2, 1).Value Then
MsgBox "Entrada en fila A" & n1 & ", repetida con fila A" & n2
End If
Else
Exit For

End If
Next n2
Next n1
End Sub

Te enviara un mensaje indicandote donde estan ls repeticiones, no obstante para hacerlo mas restrictivo tendrias que colocar en lugar del mensaje alguna instruccion que te borrara el contenido. (En la ayuda de VBA vienen algunos ejemplos)
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:no permitir repetidos en lista

Publicado por CarlosDJ (1 intervención) el 26/12/2007 21:48:07
MUY BUENA LA FORMULA, GRACIAS POR ESA GRAN AYUDA, SI QUE ERES GENIO, ME FUNCIONO PERO SUPER BIEN, ME AHORRASTE MUCHO TRABAJO
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar