Concatenar varios valores que dependan de rangos

Nuevamente solicito de su apoyo, tengo dos tablas una donde hay materias y calificaciones de alumnos y maestros, necesito identificar en que casos el alumno salio mejor evaluado que el docente, eso lo muestro en la tabla de abajo, la formula que ocupe es la que esta al lado de donde dice MATEMÁTICAS.

Ahora, necesito concatenar en un texto todas las materias que aparezcan en el cuadro de MEJOR EVALUACIÓN, solo las materias, los NO, no sirven. Espero que sea claro y agradezco su apoyo.

El texto seria mas o menos así: Los alumnos evaluaron mejor que los docentes en las materias de: Matemáticas, Química, Computación...

1 respuesta

Respuesta
1

[Hola 

Te paso la macro, asumo que los datos está en la columna B y fila 10 y el resultado en D1

Sub macro1()
'Por Adriel Ortiz
    For i = 10 To Range("B" & Rows.Count).End(xlUp).Row
        If Cells(i, "B") <> "NO" Then
            cad = cad & Cells(i, "B") & ", "
        End If
    Next i
    '
    Range("D1") = Left(cad, Len(cad) - 2)
    MsgBox "end"
End Sub

Valora la respuesta para finalizar saludos!

Excelente, funciona a la perfección, muchas gracias Adriel!!

Hola de nuevo, fíjate que cambié de lugar la tabla y agregue dos columnas y la macro me manda error quedo en esta posición pero no se donde falla, ya cambié la macro pero me genera error, me ayudas por fa?

Saludos!

Va

Sub macro1()
'Por Adriel Ortiz
    For i = 13 To Range("O" & Rows.Count).End(xlUp).Row
        If Cells(i, "O") <> "NO" Then
            cad = cad & Cells(i, "O") & ", "
        End If
    Next i
    '
    Range("N1") = Left(cad, Len(cad) - 2)
    MsgBox "Fin"
End Sub

Perfecto amigo, ahora me topo con un problema que al parecer era lo que estaba generando el error, en caso de que no encuentre ningún dato que sea mayor la calificación del alumno al maestro es cuando me manda el error que te comentaba: 

 Range("N1") = Left(cad, Len(cad) - 2)

Que podría cambiar?

Pon así

Sub macro1()
'Por Adriel Ortiz
On Error Resume Next
    For i = 13 To Range("O" & Rows.Count).End(xlUp).Row
        If Cells(i, "O") <> "NO" Then
            cad = cad & Cells(i, "O") & ", "
        End If
    Next i
    '
    Range("N1") = Left(cad, Len(cad) - 2)
    MsgBox "Fin"
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas