Recopilar en una celda información de una columna

03/03/2006 - 10:12 por Hans | Informe spam
Hola,

necesitaría construir una función que dada una columna, analice todas
las filas de la misma y si dichas filas contienen texto más largo de 2
caracteres, concatene el valor (texto) de dicha celda y la fila de la
misma en otra.

El resultado que necesito, por ejemplo en la celda A1 sería del tipo:

PEDRO5;JUAN8;INES26...

Donde Pedro, Juan, Inés sería los datos de las celdas no vacías con
más de 2 carácteres y
5, 8, 26 la fila en la cual se encuentra dicho nombre.

Todos los datos salen de la misma columna. En dicha columna hay celdas
en blanco y celdas combinadas.

Imagino que se trata de crear una función matricial, con clausula SI()
y CONCAT, pero no acabo de ligar como

Gracias

Slds Hans

Preguntas similare

Leer las respuestas

#1 AnSanVal
03/03/2006 - 14:25 | Informe spam
Copia el siguiente código en un módulo (Editor de VBA) …

Function unir(miRango As Range)
Dim celda As Range
For Each celda In miRango
If Len(celda) > 2 Then
unir = unir & celda
End If
Next celda
End Function

… y luego, suponiendo que los datos que quieres chequear y concatenar están
en A2:A25, escribe en la celda que quieras obtener el resultado: =unir(A2:A25)
Un saludo desde Tenerife (España).


"Hans" escribió:

Hola,

necesitaría construir una función que dada una columna, analice todas
las filas de la misma y si dichas filas contienen texto más largo de 2
caracteres, concatene el valor (texto) de dicha celda y la fila de la
misma en otra.

El resultado que necesito, por ejemplo en la celda A1 sería del tipo:

PEDRO5;JUAN8;INES26...

Donde Pedro, Juan, Inés sería los datos de las celdas no vacías con
más de 2 carácteres y
5, 8, 26 la fila en la cual se encuentra dicho nombre.

Todos los datos salen de la misma columna. En dicha columna hay celdas
en blanco y celdas combinadas.

Imagino que se trata de crear una función matricial, con clausula SI()
y CONCAT, pero no acabo de ligar como

Gracias

Slds Hans


Respuesta Responder a este mensaje
#2 AnSanVal
03/03/2006 - 14:31 | Informe spam
Lo siento, olvidé incluirte el número de fila :-(

Este si lo hace:

Function unir(miRango As Range)
Dim celda As Range
For Each celda In miRango
If Len(celda) > 2 Then
unir = unir & celda & celda.Row & ";"
End If
Next celda
unir = Left(unir, Len(unir) - 1)
End Function

Un saludo desde Tenerife (España).


"Hans" escribió:

Hola,

necesitaría construir una función que dada una columna, analice todas
las filas de la misma y si dichas filas contienen texto más largo de 2
caracteres, concatene el valor (texto) de dicha celda y la fila de la
misma en otra.

El resultado que necesito, por ejemplo en la celda A1 sería del tipo:

PEDRO5;JUAN8;INES26...

Donde Pedro, Juan, Inés sería los datos de las celdas no vacías con
más de 2 carácteres y
5, 8, 26 la fila en la cual se encuentra dicho nombre.

Todos los datos salen de la misma columna. En dicha columna hay celdas
en blanco y celdas combinadas.

Imagino que se trata de crear una función matricial, con clausula SI()
y CONCAT, pero no acabo de ligar como

Gracias

Slds Hans


Respuesta Responder a este mensaje
#3 Hans
03/03/2006 - 20:32 | Informe spam
Hola,

Gracias!

Mi fuerte no es el VBA. Me estaba rompiendo los cuernos para intentar
hacerlo con funciones de excel directamente...

Un Saludo

Hans
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida