Saltar al contenido

Crear lista de datos agrupados por nombre provenientes de dos columnas adyacentes (60.000 filas)


Recommended Posts

publicado

Hola a todos:

Soy nuevo en el foro, gracias de antemano por su ayuda.

Estoy trabajando con plantillas de datos bioinformáticos muy extensas (60.000 filas) y busco una forma de aliviarme el trabajo

Tengo dos columnas adyacentes. Columna A contiene nombre de genes (alrededor de 1000 genes, repetidos a lo largo de la columna en diferentes frecuencias hasta llegar a aproximadamente 60.000 filas), ordenados alfabéticamente. Para cada nombre de gen, una columna adyacente (columna B) contiene un nombre de secuencia asociada. Toda la información está en texto.

utr|3OMYR000001|p-ras omy-miR-nov217-3p_3

utr|3OMYR000001|p-ras omy-miR-nov53-5p

utr|3OMYR000001|p-ras omy-miR-nov53-5p_3

utr|3OMYR000001|p-ras omy-miR-nov91-3p

utr|3OMYR000001|p-ras omy-miR-nov62-3p_4

utr|3OMYR000001|p-ras omy-miR-nov20-5p_2

utr|3OMYR000002|ghs-r omy-miR-nov213-3p_4

utr|3OMYR000002|ghs-r omy-miR-nov120-5p_29

utr|3OMYR000002|ghs-r omy-miR-nov213-3p

utr|3OMYR000003|LOC100135986 tni-miR-15b-5p_2

utr|3OMYR000003|LOC100135986 dre-miR-107b-3p_2

utr|3OMYR000003|LOC100135986 omy-miR-nov217-3p_12

utr|3OMYR000003|LOC100135986 omy-miR-nov37-5p_17

utr|3OMYR000003|LOC100135986 omy-miR-1308_12

utr|3OMYR000003|LOC100135986 omy-miR-1308_7

utr|3OMYR000003|LOC100135986 omy-miR-1308_15

utr|3OMYR000003|LOC100135986 omy-miR-nov37-5p_22

utr|3OMYR000003|LOC100135986 omy-miR-nov37-5p_19

utr|3OMYR000003|LOC100135986 omy-miR-nov37-5p_21

utr|3OMYR000004|hsp70a omy-miR-nov101-5p_7

utr|3OMYR000004|hsp70a cca-miR-96-5p_2

Necesito agrupar en una nueva hoja el listado de secuencias que se encuentra en columna B para cada gen. La forma manual de hacerlo que encontré es filtrar la columna A, copiar los datos filtrados y pegarlos en una hoja nueva con la función transponer, pero al ser cerca de 1000 genes, el proceso es interminable...

Muchas gracias!!!

publicado

Entendido. Ya subí un archivo de muestra con una fracción de los datos. Grabé una macro, espero haya quedado bien porque fue mi primer intento... En cualquier caso el archivo adjunto y la info enunciada en la pregunta debiera bastar para darles a entender la idea de lo que quisiera hacer.

Gracias nuevamente por la ayuda Armando y usuarios del foro!!!

prueba listado genes 2.zip

publicado

Prueba con esta macro a ver que tal te va.

En la barra de estado de Excel, a medida que vaya avanzando el proceso, te irán apareciendo los distintos UTR que se vayan procesando.

Sub TransponerAgrupado()
Dim H1 As Worksheet
Dim H2 As Worksheet
Dim Anterior As Variant
Dim x As Long, Fila As Long, Columna As Long
Application.ScreenUpdating = False
Set H1 = Sheets("Lista original") '<============
Set H2 = Sheets("Lista deseada") '<============
x = 2: Fila = 1: Columna = 2
Hoja2.Cells.Clear
Anterior = Hoja1.Range("A2")
Do
Hoja2.Range("A" & Fila) = Hoja1.Range("A" & x)
Do Until Hoja1.Range("A" & x) <> Anterior
Hoja2.Cells(Fila, Columna) = Hoja1.Range("B" & x)
Columna = Columna + 1
x = x + 1
Loop
Fila = Fila + 1: Columna = 2
Application.StatusBar = "UTR: " & Anterior
Anterior = Hoja1.Range("A" & x)
Loop Until Hoja1.Range("A" & x) = ""
Application.StatusBar = "Listo"
End Sub
[/CODE]

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.