ELIMINAR DATOS REPETIDOS

14/05/2004 - 17:08 por Ing. Héctor Montero Sobrado | Informe spam
Hola Amigos.
Quisiera me pudieran ayudar con la siguiente situacion.
Tengo una hoja en la que en la columna A tengo varios Codigos, y algunos de
estos se repiten. quisiera solamente que deje valores únicos.
Pero a su vez, no quiero que elimine cualquier valor, sino que debe de
cumplir con una condición adicional, y es que en la columna B, tengo un
valor de hora de la Transacción.
Si el valor del codigo está repetido y adicionalmente necesito que compare
las horas y elimine la línea con la HORA menor.
Obviamente si el valor no está repetido que lo mantenga, pues puede haber
valores que no se repitan y los necesito.

gracias
pura Vida
HMS

Preguntas similare

Leer las respuestas

#6 Ing. Héctor Montero Sobrado
17/05/2004 - 22:34 | Informe spam
Ok
perfecto
HMS
"Héctor Miguel" escribió en el mensaje
news:OqM0$
hola, 'tocayo' :)

> ... creo que a veces esta complejidad es mejor verla [...]
> ... no pude hacer que el macro ... funcionara, algo hice mal o del todo


no entendi [...]

en realidad... soy yo que se ha 'quedado corto' [en las 'pruebas'] :((
realice las pruebas =>solo<= con codigos 'alfa-numericos' y...
[en la 'realidad'] estas usando codigos [exclusivamente] =>numericos<:))
[para el caso] solo hay que sustituir las 'triples-comillas-dobles' por


dobles-comillas 'simples'
¿en donde?... dentro del bucle 'For Fila = 1 To .Rows.Count ... Next'
existe una 'comparacion' usando el metodo/funcion 'Evaluate' en un 'If ...


And ... Then'
=> cambia de: =>& "=""" & .Cells(Fila) & """," &<> a 'solamente': =>& "=" & .Cells(Fila) & "," &<> => observa la 'desaparicion' de dos pares de comillas dobles:
despues del signo '=' y antes de la coma ',' :))

¿comenas?
saludos,
hector.

Respuesta Responder a este mensaje
#7 Manuel Romero
17/05/2004 - 22:35 | Informe spam
Hector, esa consulta lo que hace es (en español)

De la tabla Tabla que se encuentra en la base de datos, tome todos los
valores de Codigo y Hora agrupando las parejas por las que tengan el mismo
Codigo y de la agrupacion, tome el valor minimo de Hora (la mas antigua)
para cada Codigo.

La sintaxis de una consulta sencilla es asi

SELECT [lista de campos o * para tomarlos todos] FROM [nombre tabla] WHERE
[filtro de seleccion] GROUP BY [campos de agregacion] HAVING [filtro de
resultados] ORDER BY [criterio de ordenacion] {ASC/DESC}

HAVING se usa con consultas de agrupacion, por ejemplo puedo usar WHERE para
usar solo los Codigos entre 1 y 100 para hacer la estadistica (igual se
puede usar cualquier otro campo de la tabla), y luego usar HAVING para
seleccionar de entre los minimos (en este ejemplo) cuales quiero mostrar.

Espero que me hayas entendido algo de lo que escribi, no soy un super
experto en este tema, pero cualquier cosa en la que te pueda ayudar con
mucho gusto estoy a tus ordenes.

"Héctor Miguel" escribió en el mensaje
news:%
hola, Manuel !

> Desde Access es una simple consulta
> SELECT Codigo,Min(Hora) FROM Tabla GROUP BY Codigo

gracias por el apunte ;)
en realidad, no me he 'metido' con el access [me declaro 'neofito' -por


ahora-]
en virtud de mi 'desconocimiento' con bases de datos =>relacionadas<=...
me gustaria preguntar:

=> 'esa simple consulta'... [que se me 'antoja' equipararla con los


filtros avanzados de excel]
¿'hace' lo que solicita el postor original? [es decir...]
- 'elimina' las filas de [todos] los codigos 'repetidos' [dejando


'vivo' -solo- el mas 'reciente']
- y... si existieran 2, 10 o mas codigos 'repetidos'... [???]

¿comentas?
saludos,
hector.

Respuesta Responder a este mensaje
#8 Héctor Miguel
18/05/2004 - 01:30 | Informe spam
hola, Manuel !

Hector, esa consulta lo que hace es (en español)
... tome ... Codigo y Hora agrupando ... por ... Codigo y ... tome el ... minimo de Hora ... para cada Codigo [...]



es asi como he 'leido' [o 'interpretado'] que hace la consulta ;)
el 'detalle' [me parece que] esta en 'lo siguiente que hacer' [segun lo solicitado por HMS]
si consideramos ejemplos como lo siguiente [que con seguridad se habrian de 'presentar']...
- y... si hubiera 2, 10 o mas 'repeticiones' en 2, 10 o mas codigos ...
... ¿cuantas consultas mas tengo que hacer hasta 'agotar' los 'repetidos'?
... ¿que mas -aparte de la consulta- tendria que hacer para eliminar TODOS los 'minimos' [segun condiciones]?
... ¿como me 'aseguro' que el minimo 'encontrado' NO 'coincida' con =>el unico<= registro de algun codigo?

['debo insistir' en que...]
la 'sencillez' que se la ha tratado de dar como 'ventaja' de access [sobre excel]...
[al menos, para el caso que se ha planteado] NO es 'tal', NI 'tan sencillo y simple' :(
la consulta propuesta [en access] y los filtros avanzados [en excel] -para mi-... son 'equivalentes' ;)

si estoy errado en mis apreciaciones [o volo 'de mas' mi imaginacion] :((... ¿comentas?
saludos,
hector.
Respuesta Responder a este mensaje
#9 Manuel Romero
18/05/2004 - 22:46 | Informe spam
"Héctor Miguel" escribió en el mensaje
news:
hola, Manuel !

> Hector, esa consulta lo que hace es (en español)
> ... tome ... Codigo y Hora agrupando ... por ... Codigo y ... tome el


... minimo de Hora ... para cada Codigo [...]

es asi como he 'leido' [o 'interpretado'] que hace la consulta ;)
el 'detalle' [me parece que] esta en 'lo siguiente que hacer' [segun lo


solicitado por HMS]
si consideramos ejemplos como lo siguiente [que con seguridad se habrian


de 'presentar']...
- y... si hubiera 2, 10 o mas 'repeticiones' en 2, 10 o mas codigos ...
... ¿cuantas consultas mas tengo que hacer hasta 'agotar' los


'repetidos'?


No importa cuantas repeticiones hayan en 2, 10 o mas codigos como tu dices,
la consulta se encarga de agruparlos por los que tengan el mismo valor de
codigo y de cada agrupacion saca el minimo valor de hora para ese codigo, no
hay que hacer mas consultas (por lo menos en este caso) ya que la consulta
es muy sencilla. Imaginate que la consulta recorre todos los registros
automaticamente uno a uno, los organiza y devuelve el listado de registros
unicos de codigo y hora minima.

... ¿que mas -aparte de la consulta- tendria que hacer para eliminar


TODOS los 'minimos' [segun condiciones]?

No te entiendo esta pregunta.

... ¿como me 'aseguro' que el minimo 'encontrado' NO 'coincida' con =>el


unico<= registro de algun codigo?

Asi debe ser, cuando el registro sea unico (de acuerdo al codigo), el minimo
es el mismo valor unico, que es lo que desea HMS.

['debo insistir' en que...]
la 'sencillez' que se la ha tratado de dar como 'ventaja' de access [sobre


excel]...
[al menos, para el caso que se ha planteado] NO es 'tal', NI 'tan sencillo


y simple' :(

En realidad, cada mico a su palo, en este caso excel le pisa la manguera al
access porque finalmente el asunto es acerca de consulta a una tabla que,
exceptuando casos muy complejos (me refiero a muchas tablas con muchas
relaciones), el excel lo hace muy bien. Respeto tu opinion, pero la consulta
es mas sencilla en access (para mi opinion), lo complicado es que toca
definir la tabla, los campos y todo eso, no es como excel, solo escriba
datos respetando el tipo del campo y listo.

Ahora, no me malentiendas, para mi excel es la mejor herramienta que alguien
se haya podido inventar, lo que no tiene, se le programa y listo, solo que
aunque se pueda matar moscas a cañonazos (este no es el caso) no quiere
decir que no hayan herramientas para hacerlo mas facil.

la consulta propuesta [en access] y los filtros avanzados [en excel] -para


mi-... son 'equivalentes' ;)

Es cierto, pero en algunos casos (como antes, en los mas complejos) access
es mejor. Y tampoco es que access sea la panacea, ese tambien tiene sus
falencias (con el perdon de los genios de access, es que lo conozco muy bien
del todo)

si estoy errado en mis apreciaciones [o volo 'de mas' mi imaginacion]


:((... ¿comentas?

No te preocupes Hector, es muy bueno conocer las opiniones de otras personas
y discutirlas.

Perdona si me extendi en este tema pero me parece muy interesante tu
opinion.

saludos,
hector.




Un saludo mas
Manuel
Respuesta Responder a este mensaje
#10 Héctor Miguel
19/05/2004 - 03:21 | Informe spam
hola, Manuel !

[tal parece que... ] 'compartimos' -algunas- ideas en cuanto a 'funcionalidad' de access y excel ;)
['aunque'...] tenemos algunas 'diferencias' [quizas por 'interpretacion'] en lo tocante a esta 'consulta' :(
tratando de ser 'breve'...

como 'punto de partida', es decir... de la consulta de HMS [al menos, asi lo 'entendi'] 'se entiende' que...
se necesita =>eliminar<= [y supongo yo que -de preferencia-... en 'una sola pasada']...
=>todas<= las filas que 'correspondan' a los codigos 'repetidos' =>'siempre y cuando' y... 'SI' Y SOLO 'SI'...<=...
=>SI la 'hora de transaccion'<= [de esas 'repeticiones'] es 'anterior' a la 'mas reciente registrada' [para ese codigo]
[lo cual 'nos deja' que el resultado que 'se busca' es...]
=>DEBERA 'quedar' un listado con 'solamente'...
=>UN registro 'unico' [para cada codigo]... =>el que corresponda a la hora 'mas reciente' registrada<
lo anterior fue mi 'preocupacion a cubrir' [por lo que no me 'cuadraba' la propuesta de la 'simple consulta' -en access-]
y fue por lo mismo que hacia las preguntas de...
1> ... si hubiera 2, 10 o mas 'repeticiones' en 2, 10 o mas codigos ...
2> ... ¿cuantas consultas mas tengo que hacer hasta 'agotar' los 'repetidos'?
3> ... ¿que mas -aparte de la consulta- tendria que hacer para eliminar TODOS los 'minimos' [segun condiciones]?
4> ... ¿como me 'aseguro' que el minimo 'encontrado' NO 'coincida' con =>el unico<= registro de algun codigo?

- al respecto de las 'preguntas' 1 y 2, comentas lo siguiente... -
No importa cuantas repeticiones haya ... la consulta se encarga de agruparlos por ... codigo
... saca el minimo valor de hora para ese codigo, no hay que hacer mas consultas
... los organiza y devuelve el listado de registros unicos de codigo y hora minima.




=>[aqui... 'debo insistir' en que...]
la 'consulta' [¿query?] en access... 'devuelve' =>UN<= codigo [de cada uno]... el de la hora 'minima'
¡ SI !!!... 'pero'... =>solo uno<= [de cada 'grupo' de codigos] INCLUIDO... 'el unico'
=>y... despues de que 'me digas'... ¿como =>los elimino<= de la base de datos? =>'respetando al unico'<= ...
=>SI es 'necesario' hacer 'X' consultas mas... hasta 'agotar' los repetidos [de cada codigo] :((

- al respecto de la 'pregunta' 3, comentas... -
No te entiendo esta pregunta.




=>[creo que es 'sencilla'] segun yo... la 'simple consulta' =>por si sola<= NO 'basta'...
¿como =>los elimino<= de la base de datos? =>'respetando al unico'< en 'otras palabras'... ¿que acciones hacen falta para la 'terminacion' de lo solicitado? =>eliminar registros< [para poder 'comparar' la 'simple consulta' en access versus el 'rebuscado' procedimiento propuesto en excel]

- y para la 'pregunta' 4 comentas que... -
Asi debe ser, cuando el registro sea unico ... el minimo es el mismo valor unico, que es lo que desea HMS.




=>[creo que] 'aqui' es donde la 'interpretacion'... 'difiere' :(
si existe un registro =>unico<=... NO debe ser =>incluido<= como el de la 'hora minima' =>'eliminable'<= ;)

['debo insistir' -nuevamente- en que...]
la 'sencillez' que se le ha tratado de dar como 'ventaja' de access [sobre excel]...
[al menos, para el caso que se ha planteado] NO es 'tal', NI 'tan sencillo y simple' :(

tambien debo 'confesarte' que estoy en concuerdo 'totalmente' contigo en lo siguiente...
... cada mico a su palo, en este caso excel le pisa la manguera al
access porque finalmente el asunto es acerca de consulta a una tabla que,
exceptuando casos muy complejos (me refiero a muchas tablas con muchas
relaciones), el excel lo hace muy bien. Respeto tu opinion, pero la consulta
es mas sencilla en access (para mi opinion), lo complicado es que toca
definir la tabla, los campos y todo eso, no es como excel, solo escriba
datos respetando el tipo del campo y listo.

Ahora, no me malentiendas, para mi excel es la mejor herramienta que alguien
se haya podido inventar, lo que no tiene, se le programa y listo, solo que
aunque se pueda matar moscas a cañonazos (este no es el caso) no quiere
decir que no hayan herramientas para hacerlo mas facil.

> la consulta propuesta [en access] y los filtros avanzados [en excel] -para
mi-... son 'equivalentes' ;)

Es cierto, pero en algunos casos (como antes, en los mas complejos) access
es mejor. Y tampoco es que access sea la panacea, ese tambien tiene sus
falencias (con el perdon de los genios de access, es que lo conozco muy bien
del todo)

> si estoy errado en mis apreciaciones [o volo 'de mas' mi imaginacion]
:((... ¿comentas?

No te preocupes Hector, es muy bueno conocer las opiniones de otras personas
y discutirlas.

Perdona si me extendi en este tema pero me parece muy interesante tu
opinion.

> saludos,
> hector.
>

Un saludo mas
Manuel


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida