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
 

Leer las respuestas

#1 KL
03/08/2007 - 23:13 | Informe spam
Hola Juan Gustavo,

"Juan Gustavo Fogelman" wrote in message
news:
tengo 2 celdas con datos y quiero en una tercera obtener la diferencia
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



Asi a simple vista, no creo que se pueda hacer solamente mediante funciones
estandar de Excel (la opcion de la macrofuncion Evaluete tampoco valdria por
el numero de elementos posible)

Podrias probar la siguiente funcion definida por usuario (UDF):

'--En un modulo VBA estandar del libro (p.ej. Modulo1)--
Public Function Difference( _
strTextOrig As String, strTextNew As String, strSeparator As String)
As String
Dim arrElements As Variant
Dim i As Integer
Dim temp As String
temp = strTextOrig
arrElements = Split(strTextNew, strSeparator)
For i = LBound(arrElements) To UBound(arrElements) - 1
temp = Replace(temp, arrElements(i) & strSeparator, "")
Next i
Difference = temp
End Function
'

en la hoja utiliza la siguiente sintaxis:

=Difference(A1;B1;"; ")

Saludos,
KL

Preguntas similares