Bienvenido a la mayor comunidad de usuarios EXCEL

Regístrate ahora y podrás: / 💪 Hacer preguntas a los expertos / ⬇️ Descargar ejemplos y plantillas / 🏅 Acceder a contenidos premium

Regístrate gratis

Separar lista ordenada de dos cursos combinados

zeros

Member
hola
Antes que nada ,gracias por la ayuda brindada, en la pregunta anterior ya tengo ordenada las listas de curso, pero algunos cursos son dobles o combinados y tengo una sola lista ordenada con todos. Como puedo hacer para me clasifique la lista ordenada de acuerdo a los cursos del lado izquierdo.

Adjunto archivo (gracias de antemano)
 

Adjuntos

  • curso combinado.xlsx
    11,2 KB · Visitas: 8

zeros

Member
Buenas,

Adjunta el fichero desde el inicio, con el código que utilizas para ordenarlo por nombre así intentaremos añadirlo al mismo.

Un saludo.
Hola no se si te entiendo , lo que hago es que lo ordenado que tengo en el archivo base lo copio a a la planilla principal y ahi chequeo , no se si es lo mismo que tu me dices, yo pensaba abrir un libro con el fichero que te mande y pegarlo ahi( ups se me olvido subir el fichero) este hoja la crearia en la planilla principal en un libro x y ahi pegaria lo ordenado en la otra y en esta deberia clasificarse por curso.
 

Adjuntos

  • curso combinado.xlsx
    11,2 KB · Visitas: 3
Última edición:

novirus

Active member
Buenas,

Lo entiendo, el código de este post es ordenar todos los usuarios y todavía en ese momento no sabes que reunión hacen.
Luego cuando sabes la reunión, copias estos usuarios a otro fichero o hoja y los separas por reunión y quieres entonces que los ordene distinguiendo entre el nombre del curso "3MA" o "3MB" o lo que sea.
¿Es así?
Las pautas son estas:
1) Ordenas:
1615393364013.png

2) Copias las columnas F a la J en otro Excel, dando a lugar esto:
1615393410442.png

Y ahora deseas que se ordene dentro de cada Reunión, quedando algo así:
1615393557705.png

¿Es así?

Un saludo.
 

zeros

Member
Buenas,

Lo entiendo, el código de este post es ordenar todos los usuarios y todavía en ese momento no sabes que reunión hacen.
Luego cuando sabes la reunión, copias estos usuarios a otro fichero o hoja y los separas por reunión y quieres entonces que los ordene distinguiendo entre el nombre del curso "3MA" o "3MB" o lo que sea.
¿Es así?
Las pautas son estas:
1) Ordenas:
Ver archivo adjunto 66031

2) Copias las columnas F a la J en otro Excel, dando a lugar esto:
Ver archivo adjunto 66032

Y ahora deseas que se ordene dentro de cada Reunión, quedando algo así:
Ver archivo adjunto 66033

¿Es así?

Un saludo.
si creo que es asi , que los separe por curso pero ordenados al mimo tiempo por apellido,el listado que paso a la otra planilla es el listado ya ordenado(con tu codigo) lo que falta es distribuir por curso los integrantes ordenados por apellido (no siempre estan todos, puede haber ausentes
 

novirus

Active member
Buenas tardes,

Te adjunto el fichero excel con el código y botón.
Lo único que debes ponerlo así:
1615655136132.png
Con una cabecera de "ALUMNOS" queda mas fino.
Lo que hace es coger la columna de alumnos y ordenarla, el resultado lo pone en la columna F.
Recuerda que el código no sabe si la columna de alumnos esta con apellidos y nombre o nombre y apellidos, el ordena por elementos.
Espero te sirva.

Un saludo.
 

Adjuntos

  • curso combinado v1.xlsm
    25,8 KB · Visitas: 5

zeros

Member
Buenas tardes,

Te adjunto el fichero excel con el código y botón.
Lo único que debes ponerlo así:
Ver archivo adjunto 66142
Con una cabecera de "ALUMNOS" queda mas fino.
Lo que hace es coger la columna de alumnos y ordenarla, el resultado lo pone en la columna F.
Recuerda que el código no sabe si la columna de alumnos esta con apellidos y nombre o nombre y apellidos, el ordena por elementos.
Espero te sirva.

Un saludo.
Revisando ...gracias veré como me funciona
 

zeros

Member
Revisando ...gracias veré como me funciona
Parece que mi idea original se mal entendió, procedo a explicártela de nuevo pues la planilla que me has mandado no se ajusta a lo requerido
1)el programa de meet me pasa una lista de jovenes que pertenecen al dos cursos 3a y 3b desordenados pues el programa los toma creo por orden de ingreso a la plataforma y con la rutina de la otra pregunta que te realice(tu rutina) ,los ordeno según el apellido , quedando una lista refundida de ambos cursos ordenados por apellido
2)la lista ordenada la copio en la planilla maestra en un libro auxiliar donde "ya están los dos cursos clasificados por apellido" y la pongo a la derecha en la colunma digamos C , lo que yo entiendo es que la rutina debería tomar esta lista ordenada que acabo de copiar y pegar ahí y compararla con la lista que esta a la izquierda y segun eso clasificar a los alumnos desplegando ordenadamente los del 3A y después los del 3B, te mandare un archivo con lo deseado para ver si me puedes ayudar, deben ser detalles
 

Adjuntos

  • ejemplo.xlsx
    12,4 KB · Visitas: 6
Última edición:

novirus

Active member
Buenas,

Perfecto, lo entiendo.
Seria así:
1616201894038.png
Tienes una lista de color Verde que previamente has ordenado en otro fichero.
Ahora en este fichero esa lista la copias en la columna C (Verde) y este fichero contiene además supuestamente los mismos alumnos columna A amarilla pero desordenados (que en el ejemplo aparecen ordenados) y quieres que compare la lista Amarilla desordenada con la lista Verde ordenada y en función de si esta en el grupo 3A o 3B los coloque ordenados dentro de cada lista dando lugar a ambas listas en Rojo columna I. Seria esto, entiendo.
Pregunta, porque no ordenas directamente las listas columna A (amarillas) para que el resultado sea la columna I (rojo). Perdona, pero es lo que no acabo de entender, hay algo que se me escapa.:unsure:

Un saludo.
 

zeros

Member
Buenas,

Perfecto, lo entiendo.
Seria así:
Ver archivo adjunto 66349
Tienes una lista de color Verde que previamente has ordenado en otro fichero.
Ahora en este fichero esa lista la copias en la columna C (Verde) y este fichero contiene además supuestamente los mismos alumnos columna A amarilla pero desordenados (que en el ejemplo aparecen ordenados) y quieres que compare la lista Amarilla desordenada con la lista Verde ordenada y en función de si esta en el grupo 3A o 3B los coloque ordenados dentro de cada lista dando lugar a ambas listas en Rojo columna I. Seria esto, entiendo.
Pregunta, porque no ordenas directamente las listas columna A (amarillas) para que el resultado sea la columna I (rojo). Perdona, pero es lo que no acabo de entender, hay algo que se me escapa.:unsure:

Un saludo.
Hola , es precisamente como los pusiste con colores
y este fichero contiene además supuestamente los mismos alumnos columna A amarilla pero desordenados
el fichero contiene los que pusiste en amarillo mas los que estan abajo del amarillo.
ademas no es solo este un solo curso en esa modalidad hay varios y esto hay que hacerlo y mandarlo todos los días

porque no ordenas directamente las listas columna A (amarillas) para que el resultado sea la columna I (rojo).
no entiendo esta idea ,lo que quiero son los alumnos separados por curso como tu propones no se me ocurre una forma de clasificarlos
Saludos Amigo virtual
 

novirus

Active member
Buenas,
Respecto a:
Hola , es precisamente como los pusiste con colores.
Perfecto lo entiendo.

Respecto a:
no entiendo esta idea ,lo que quiero son los alumnos separados por curso como tu propones no se me ocurre una forma de clasificarlos
Saludos Amigo virtual
No, no, lo de clasificarlos lo entiendo, pero mi duda me explico mejor a ver, porque copias alumnos de otro excel (ordenados) y los colocas en la columna C (Verde) no te valen directamente los que están en la columna A (Amarillo) y ordenar estos directamente y que te los clasifique también en el resultado.
Perdona que te pregunte, pero es importante para evitar hacer "código" innecesario.

Un saludo.
 
Última edición:

zeros

Member
Buenas,
Respecto a:

Perfecto lo entiendo.

Respecto a:

No, no, lo de clasificarlos lo entiendo, pero mi duda me explico mejor a ver, porque copias alumnos de otro excel (ordenados) y los colocas en la columna C (Verde) no te valen directamente los que están en la columna A (Amarillo) y ordenar estos directamente y que te los clasifique también en el resultado.
Perdona que te pregunte, pero es importante para evitar hacer "código" innecesario.

Un saludo.
Los que estan en la columna A , forman parte de la lista ordenada de cada curso combinado que como son pocos los puse juntos (imagina que esos dos cursos eligieron por ejemplo Algebra) , eso lo tengo.Como se pasa asistencia cada dia comparo los que entraron virtualmente cada dia con la columna A y pongo presente a los que aparecen de cada curso ,eso lo hago a mano. No se si se aclara. saludos
 

novirus

Active member
Los que estan en la columna A , forman parte de la lista ordenada de cada curso combinado que como son pocos los puse juntos (imagina que esos dos cursos eligieron por ejemplo Algebra) , eso lo tengo.Como se pasa asistencia cada dia comparo los que entraron virtualmente cada dia con la columna A y pongo presente a los que aparecen de cada curso ,eso lo hago a mano. No se si se aclara. saludos
Buenas,

Columna A seria la lista Oficial, los que han hecho el curso online (o como sea) los tienes en otra lista, por eso luego esa lista (Columna C) quieres que la compare con la columna A y dándote como resultado quien ha asistido realmente al curso, Columna C,
Ahora lo entiendo. Ves todo tenia una lógica pero desde aquí a veces es difícil entenderlo.
Dicho esto, miraremos de ayudarte, preguntas previas:
1) En la columna A (Amarillo) siempre estarán desordenados y/o entiendo que en orden de Nombre Apellido1 Apellido2 es así, o puede ser que estén de otra manera. Esto lo pregunto para saber si previamente hay que ordenarlo.
2) La columna C que traerás de otro fichero (verde) entiendo que estará ordenado por Apellido1 Apellido2 Nombres cada uno en una columna (C,D,E,F, etc). Si estas condiciones son correctas, solo debemos hacer lo siguiente:
A) Ordenar la Columna A (Amarillo) por Apellido1 Apellido2 Nombres y por curso (internamente o no).
B) Por cada elemento de la Columna A (Amarillo) buscarlo en la Columna C (Verde), es así, ¿verdad?
C) Dependiendo de la respuesta de B), hay dos posibilidades:
C.1) Si existe se colocara en la Columna I (indicando el curso).
C.2) Si no existe se identificara en la Columna A, porque se entiende que no ha asistido.
D) Una vez finalizado, con el resultado de la Columna I (Rojo) se ordenara por Apellido1 Apellido2 Nombres por cursos.
Ahora que lo sabemos con certeza en cuanto lo haga lo sabrás.

Un saludo.
 

zeros

Member
Buenas,

Columna A seria la lista Oficial, los que han hecho el curso online (o como sea) los tienes en otra lista, por eso luego esa lista (Columna C) quieres que la compare con la columna A y dándote como resultado quien ha asistido realmente al curso, Columna C,
Ahora lo entiendo. Ves todo tenia una lógica pero desde aquí a veces es difícil entenderlo.
Dicho esto, miraremos de ayudarte, preguntas previas:
1) En la columna A (Amarillo) siempre estarán desordenados y/o entiendo que en orden de Nombre Apellido1 Apellido2 es así, o puede ser que estén de otra manera. Esto lo pregunto para saber si previamente hay que ordenarlo.
2) La columna C que traerás de otro fichero (verde) entiendo que estará ordenado por Apellido1 Apellido2 Nombres cada uno en una columna (C,D,E,F, etc). Si estas condiciones son correctas, solo debemos hacer lo siguiente:
A) Ordenar la Columna A (Amarillo) por Apellido1 Apellido2 Nombres y por curso (internamente o no).
B) Por cada elemento de la Columna A (Amarillo) buscarlo en la Columna C (Verde), es así, ¿verdad?
C) Dependiendo de la respuesta de B), hay dos posibilidades:
C.1) Si existe se colocara en la Columna I (indicando el curso).
C.2) Si no existe se identificara en la Columna A, porque se entiende que no ha asistido.
D) Una vez finalizado, con el resultado de la Columna I (Rojo) se ordenara por Apellido1 Apellido2 Nombres por cursos.
Ahora que lo sabemos con certeza en cuanto lo haga lo sabrás.

Un saludo.
hola
1) la columna A siempre estará siempre estara ordenada por Apellido 1 Apellido2 Nombre1 Nombre 2 Nombre 3 ...(de echo están así ahora)
2) eso es correcto, pues lo traeré ordenado con la rutina que tu me pasaste antes en la otra pregunta
2A) no ya esta ordenado cada curso de la columna A
lo demas parece estar ok (como información adicional esta rutina la usare tanto para ordenar cursos 3MA , 3MB v 4MA , 4MB por lo tanto sera una macro de uso general dependiendo de la ocasión), no se si eso complica las cosas un poco , tu me dices
Un saludo y cuidate amigo
 

novirus

Active member
tranquilo amigo , me imagino que estas muy ocupado
Buenas,

Te adjunto lo realizado hasta ahora.
Me explico, como ejemplo esto:
Captura 1.JPG


























Ahora al pulsar el botón nos realiza lo siguiente:

Captura 3.JPG

Y el resultado seria este:
1617657111870.png

De momento he realizado que deje una columna llamada "Curso" C3 con el nombre del curso, pruébalo, si te va bien, entonces podemos hacer que el resultado lo ponga en otra columna L3.
Básicamente lo que realizo es lo siguiente:
1) Busco la palabra "ALUMNOS" para saber la columna/fila de alumnos.
2) Busca la palabra "Curso" para saber donde colocar el nombre del curso, columna/fila.
3) Busco la palabra "LISTA A TRATAR" para saber donde empezar a leer los nombres que has colocado, columna/fila.
4) Almaceno en una Dictionary los alumnos de la columna "ALUMNOS", los almaceno en minúsculas y CON acentos.
5) Almaceno en una Dictionary los alumnos de la columna "ALUMNOS", los almaceno en minúsculas y SIN acentos.
6) Recorro la columna "LISTA A TRATAR" y busco cada alumno en ambos Dictionary, CON/SIN acento.
7) Si lo encuentro, coloco en la columna "CURSO" el nombre del curso.
8) Si no lo encuentro, coloco en la columna "CURSO" un * y lo pongo de color VERDE.
9) Ordeno por columna "CURSO" y dentro de cada curso por su Apellido.
Si te fijas que es lo que NO encuentra, por ejemplo:
1617657574781.png
El Sr. Pepito, obviamente me lo he inventado.
Pero el Sr. "VELÁSQUEZ DONOSO RAFAEL ENRIQUE VELÁSQUEZ "no existe, ya que el único "VELÁSQUEZ" se llama: Velásquez Donoso Rafael Enrique.
Por otro lado, aunque lo soluciono, también pones "espacios" al final del nombre, como en el caso de "Chavez Yáñez Fernanda Belén ", hay un espacio al final.
Son detalle que he tenido que pulir y obviamente hacen que sea mas difícil comparar dos cosas.
Si te funciona, entonces pondremos que lo copie en la columna "RESULTADO FINAL".

Ya me diras.
Un saludo.
 

Adjuntos

  • curso combinado v4.xlsm
    38,4 KB · Visitas: 4
  • 1617657614642.png
    1617657614642.png
    5,3 KB · Visitas: 2

zeros

Member
Buenas,

Te adjunto lo realizado hasta ahora.
Me explico, como ejemplo esto:
Ver archivo adjunto 66808


























Ahora al pulsar el botón nos realiza lo siguiente:

Ver archivo adjunto 66811

Y el resultado seria este:
Ver archivo adjunto 66810

De momento he realizado que deje una columna llamada "Curso" C3 con el nombre del curso, pruébalo, si te va bien, entonces podemos hacer que el resultado lo ponga en otra columna L3.
Básicamente lo que realizo es lo siguiente:
1) Busco la palabra "ALUMNOS" para saber la columna/fila de alumnos.
2) Busca la palabra "Curso" para saber donde colocar el nombre del curso, columna/fila.
3) Busco la palabra "LISTA A TRATAR" para saber donde empezar a leer los nombres que has colocado, columna/fila.
4) Almaceno en una Dictionary los alumnos de la columna "ALUMNOS", los almaceno en minúsculas y CON acentos.
5) Almaceno en una Dictionary los alumnos de la columna "ALUMNOS", los almaceno en minúsculas y SIN acentos.
6) Recorro la columna "LISTA A TRATAR" y busco cada alumno en ambos Dictionary, CON/SIN acento.
7) Si lo encuentro, coloco en la columna "CURSO" el nombre del curso.
8) Si no lo encuentro, coloco en la columna "CURSO" un * y lo pongo de color VERDE.
9) Ordeno por columna "CURSO" y dentro de cada curso por su Apellido.
Si te fijas que es lo que NO encuentra, por ejemplo:
Ver archivo adjunto 66812
El Sr. Pepito, obviamente me lo he inventado.
Pero el Sr. "VELÁSQUEZ DONOSO RAFAEL ENRIQUE VELÁSQUEZ "no existe, ya que el único "VELÁSQUEZ" se llama: Velásquez Donoso Rafael Enrique.
Por otro lado, aunque lo soluciono, también pones "espacios" al final del nombre, como en el caso de "Chavez Yáñez Fernanda Belén ", hay un espacio al final.
Son detalle que he tenido que pulir y obviamente hacen que sea mas difícil comparar dos cosas.
Si te funciona, entonces pondremos que lo copie en la columna "RESULTADO FINAL".

Ya me diras.
Un saludo.
Lo vi recien,deja digerirlo y te comunico , ya que estoy hasta el cuello con trabajo, gracias por tu trabajo y tiempo
 

zeros

Member
Lo he estado probando haciendo las adaptaciones del caso , en tu archivo me funciona muy bien
pero he copiado la macro al mio y aparece un error , he estado un buen rato tratando de adivinar de donde es ese error
con respecto a los espacios que dices los nombres son tal cual , puede que al escribirlos apareciera un espacio
una duda como le hago para que antes de hacer nada recorra la lista y si esta mi nombre ahi lo borre (en los ejemplos que te mande no lo puse , no se me habia ocurrido ( la idea es simple pego la lista y antes de hacer nada si aparece algun "zeros" mi nombre lo elimina , si es mucho problema no importa.
 

Adjuntos

  • ERROR.png
    ERROR.png
    53,1 KB · Visitas: 4

Temas similares

Arriba