Forums Últimos mensajes - Powered by IBM
 

Buscar y concatenar

29/06/2007 - 13:33 por Nacho | Informe spam
Hola amigos,

Tengo una hoja del tipo con dos columnas A y B del tipo


A B
-
1 A1 I1
2 A2 I2
3 A3 I3
4 A4 I1
5 A5 I2
6 A6 I3
7 A7 I2
...

Con un número de filas del orden de 100

Necesito crear el siguiente resultado:

I1 A1;A4
I2 A2;A5;A7
I3 A3;A6

Es decir, necesito buscar todas las celdas que contiene I1, I2 e I3 en la
columna B y poner en la celda contigua el valor de la columna A

Gracias de antemano. Un saludo
 

Leer las respuestas

#1 Héctor Miguel
29/06/2007 - 21:33 | Informe spam
hola, Nacho 1

Tengo una hoja... con dos columnas A y B del tipo
A B
-
1 A1 I1
2 A2 I2
3 A3 I3
4 A4 I1
5 A5 I2
6 A6 I3
7 A7 I2
...
... filas del orden de 100 Necesito crear el siguiente resultado:
I1 A1;A4
I2 A2;A5;A7
I3 A3;A6
... necesito buscar todas las celdas que contiene I1, I2 e I3 en la columna B y poner en la celda contigua el valor de la columna A



[segun parece] te resultaria mas apropiado definir una funcion personalizada +/- como sigue:
copia/pega las siguientes lineas en un modulo de codigo normal/general/estandar/...

Function TomarDatos(Datos As Range, Claves As Range, Clave) As String
Dim Celda As Range, Fila As Long: TomarDatos = "": Fila = 1
For Each Celda In Claves
If Celda = Clave Then TomarDatos = TomarDatos & "; " & Datos.Cells(Fila)
Fila = Fila + 1
Next: TomarDatos = Mid(TomarDatos, 3)
End Function

y 'llama' a esta funcion como a cualquiera otra de las 'integradas' de excel... [p.e.]
si suponemos que tus 100 filas estan en el rango A1:A100 y B1:B100
y que el primer dato buscado lo pones en 'D1' y quieres los resultados en 'E1'...

[E1] =TomarDatos($A$1:$A$100,$B$1:$B$100,D1)

-> ajusta si fuera necesario el separador de argumentos [mi sistema usa la coma ',' NO el punto y coma ';'] :D

saludos,
hector.

Preguntas similares