diferencia entre datos de 2 celdas

03/08/2007 - 17:15 por Juan Gustavo Fogelman | Informe spam
hola Gente

tengo 2 celdas con datos y quiero en una tercera obtener la diferencia
EJ:

celdaA1: "01; 02; 03; 05; 07; 11; "
celdaA2: "01; 03; 07; 11; "
el resultado de celdaA3 deberia ser: "02; 05; "

debe notarse que uso: 2 numeros, un punto y coma, y un espacio
o sea: cada dato ocupa 4 espacios, incluido el punto y coma y el espacio
los datos son del 00 al 99 y pueden haber tantos como 100 en cada celda
la celdaA1 siempre tiene todos los datos de la celdaA2, mas otros. la
celdaA2, nunca tiene datos que no esten en la celdaA1
o sea: la celdaA2 es un subconjunto de la celdaA1

Gracias de antemano, que siempre me ayudan

Preguntas similare

Leer las respuestas

#11 Xavier Budet Graco
04/08/2007 - 13:41 | Informe spam
Hola Julian, cuando vi la pregunta de Juan Gustavo hice una fórmula para resolver el problema pero se complicaba a partir de que en A2 hubiera más de 4 o 5 grupos. Pensé que se habría de resolver con VBA y mis conocimientos con código son pequeños... así pués me he alegrado que tu le dieras solución con fórmulas. No es tan "limpio" como con código pero muy bien.

Saludos,

Xavier

Quitar MAC para contestar. Gracias.

"julian-vlc-sp" escribió en el mensaje news:
> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias.
>
Antes se me ha olvidado indicar que para llamar a la función que te propongo
has de hacerlo como sigue:

=lasdiferencias(A1;A2)

El problema que tenía para hacerlo sin código me ha desaparecido y no se
como.

Es igual, si quieres hacerlo sin código mi propuesta es:

En C1 pones:

=SI(FILAS(C$1:C1)>LARGO($A$2)/4;"";SUSTITUIR(A1;EXTRAE($A$2;4*(FILAS(C$1:C1)-1)+1;4);""))

en C2 pones:

=SI(FILAS(C$1:C2)>LARGO($A$2)/4;"";SUSTITUIR(C1;EXTRAE($A$2;4*(FILAS(C$1:C2)-1)+1;4);""))

la formula de C2 la arrastras hasta C100

La ultima celda escrita que te aparezca en el rango C1:C100 será el
resultado que buscas


SALUDOS.
Julián-Valencia-España
http://ijulian.iespana.es/


"julian-vlc-sp" escribió en el mensaje
news:
>> ¡Importante!: Colabora con el grupo.Contesta a este mensaje
y dinos si te sirvió o no la respuesta dada. Muchas gracias.
>>
He intentado hacerlo sin código pero me he encontrado un problema que
ahora preguntaré a KL.

Si te parece, puedes probar lo siguiente (después miro si se parece o no a
lo expuesto por KL)

Function LasDiferencias(celdaa1 As String, celdaa2 As String)

Dim ElResultado As String
Dim i As Integer

ElResultado = celdaa1

For i = 1 To Len(celdaa2) / 4

ElResultado = Replace(ElResultado, Mid(celdaa2, 4 * (i - 1) + 1,
4), "")

Next i

LasDiferencias = ElResultado

End Function


SALUDOS.
Julián-Valencia-España
http://ijulian.iespana.es/


"Juan Gustavo Fogelman" escribió en el
mensaje news:

hola Gente

tengo 2 celdas con datos y quiero en una tercera obtener la diferencia
EJ:

celdaA1: "01; 02; 03; 05; 07; 11; "
celdaA2: "01; 03; 07; 11; "
el resultado de celdaA3 deberia ser: "02; 05; "

debe notarse que uso: 2 numeros, un punto y coma, y un espacio
o sea: cada dato ocupa 4 espacios, incluido el punto y coma y el espacio
los datos son del 00 al 99 y pueden haber tantos como 100 en cada celda
la celdaA1 siempre tiene todos los datos de la celdaA2, mas otros. la
celdaA2, nunca tiene datos que no esten en la celdaA1
o sea: la celdaA2 es un subconjunto de la celdaA1

Gracias de antemano, que siempre me ayudan










Respuesta Responder a este mensaje
#12 Juan Gustavo Fogelman
04/08/2007 - 16:31 | Informe spam
bien
ahora entendi como funcionan las formulas sin codigo...
el problema es que en mi caso, no es solo A1 contra B1...
es que tengo que tengo que A1:B50000 como en 100hojas...
asi que en este caso tendria que poner 100columnas, "horizontalizar" las
formulas... y no tengo 100 columnas disponibles, porque A y B son solo un
ejemplo

uso unas 150 columnas en total... en cada hoja... y lo necesito 3 veces

asi que gracias, pero no lo puedo aplicar. si bien funciona.

lo he hecho por codigo...
el primero que armo en VBA de excel, aunque ya tengo mucha experiencia en
access
hace años que trabajo en access, desde el 97, pero excel lo encare hace poco
(dias), cuando no me quisieron comprar la licencia del office 2003 que tiene
access. je, cuestion de pasta.

asi que ha sido mi debut en VBA excel... aunque es casi casi lo mismo
Respuesta Responder a este mensaje
#13 Héctor Miguel
06/08/2007 - 09:52 | Informe spam
hola, chicos !

aunque existen alternativas sin macros [p.e. definiendo nombres-formula] ;) pero...
*me da miedo* [siquiera sugerirlas por] el volumen de operaciones/formulas/... que mencionas:
~50000 comparaciones... 100 hojas... 3 veces... [y sin saber que contienen las 150 columnas]... -?-

[probablemente] aun definiendo una funcion en VBA, convendria establecer su volatilidad en falso -?-
[incluso] pudiera ser mas *sano* usar una macro en lugar de una funcion definida por usuario -?-

lo bueno es que ya has entrado al mundo de las macros en vba de excel :))

saludos,
hector.

Juan Gustavo Fogelman escribio en el mensaje ...
... entendi como funcionan las formulas sin codigo...
el problema es que en mi caso, no es solo A1 contra B1...
es que tengo que tengo que A1:B50000 como en 100 hojas...
asi que en este caso tendria que poner 100 columnas, "horizontalizar" las formulas...
y no tengo 100 columnas disponibles, porque A y B son solo un ejemplo
uso unas 150 columnas en total... en cada hoja... y lo necesito 3 veces
asi que gracias, pero no lo puedo aplicar. si bien funciona. lo he hecho por codigo...
el primero que armo en VBA de excel, aunque ya tengo mucha experiencia en access
hace años que trabajo en access, desde el 97, pero excel lo encare hace poco (dias)
cuando no me quisieron comprar la licencia del office 2003 que tiene access. je, cuestion de pasta.
asi que ha sido mi debut en VBA excel... aunque es casi casi lo mismo
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida