Cómo contar celdas que sean de un color determinado y que sean mayores qué

Necesito contar celdas que cumplan dos requisitos: Sean de un color determinado y también contengan un número mayor que (>4 por ejemplo). Por más que he buscado en foros no consigo esa formula, ambas por separado sí, pero a la hora de juntarlas me es imposible.

Tengo la versión de Excel 2016 y lo utilizo en Windows 10.

Como se puede ver en el ejemplo, en la casilla AW5 tengo que sumar los aprobados del primer trimestre (color naranja) correspondientes a UNAY y en la casilla BA5 los suspensos. Esta misma formula para cada caso que se puede ver en las casillas tanto de aprobados como de suspensos, por cada alumno y por cada trimestre (posteriormente se suman ambas para sacar totales de cara a estadísticas, pero eso es otro tema).

Tengo la formula CONTARCOLOR en VBA y funciona correctamente, pero no soy capaz de añadirle la función de contar mayor o menor qué.

Respuesta
1

Puedes poner el código de la función CONTARCOLOR para actualizarlo

Muy buenas,

Aquí el código que conseguí en un tutorial:

Function CONTARCOLOR(celdaOrigen As Range, rango As Range)


Application.Volatile

'Variables
Dim celda As Range
'Recorremos todas las celdas del rango
For Each celda In rango
'Compara la propiedad Interior.Color
If celda.Interior.Color = celdaOrigen.Interior.Color Then
CONTARCOLOR = CONTARCOLOR + 1
End If
Next celda
End Function

Te anexo otra macro, la función CONTARCOLOR2

Con tu función CONTARCOLOR podrás seguir contando celdas de acuerdo a determinado color.

Ahora, con la función CONTARCOLOR2, podrás contar celdas de un color, pero además solamente las contará si el valor de la celda es mayor a 4.

Pon la siguiente macro en un módulo:

Function CONTARCOLOR2(celdaOrigen As Range, rango As Range)
    Application. Volatile
    'Variables
    Dim celda As Range
    'Recorremos todas las celdas del rango
    For Each celda In rango
    'Compara la propiedad Interior.Color
        If celda.Interior.Color = celdaOrigen.Interior.Color Then
            If celda.Value > 4 Then
                CONTARCOLOR2 = CONTARCOLOR2 + 1
            End If
        End If
    Next celda
End Function


.

.

Muchísimas gracias :D

Funciona a la perfección, cambié los valores requeridos para hacer el CONTARCOLOR para la versión de suspensos (<5) y va como se esperaba.

Muchas gracias por la rapidez y la exactitud :)

Muy buenas de nuevo,

Me ha surgido otro problema: resulta que al poner la fórmula en las diferentes casillas, ésta me cuenta las celdas sin valor como un 0. En el caso de los aprobados no las cuenta pero en el caso de los suspensos me las cuenta como si fuesen menores de 5. Necesitaría añadir a la fórmula otra línea en la que solo cuente casillas con valor.

Pongo la fórmula de suspensos que modifiqué de la muestra de arriba:

Function CONTARCOLORSUSP(celdaOrigen As Range, rango As Range)
    Application.Volatile
    'Variables
    Dim celda As Range
    'Recorremos todas las celdas del rango
    For Each celda In rango
    'Compara la propiedad Interior.Color
        If celda.Interior.Color = celdaOrigen.Interior.Color Then
            If celda.Value < 5 Then
                CONTARCOLORSUSP = CONTARCOLORSUSP + 1
            End If
        End If
    Next celda
End Function

(Ahora si añadí la formula con la opción de insertar... disculpar mi ignorancia).

Muchas gracias de antemano.

Al final de mi respuesta hay un botón para valorar la respuesta: "Votar" y "Excelente", apreciaría que cambiaras la valoración.

Perfecto :) Lo hago, perdona que no marcase excelente antes, no lo vi, lo hubiese hecho sin duda :) Abro una nueva pregunta :)

No te preocupes. También ya te envié la macro actualizada en la otra pregunta.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas