1. AyudaExcel utiliza cookies. Si continuas utilizando AyudaExcel, estás aceptando la utilización de nuestras cookies. Más información.
  2. ¡Bienvenid@ a AyudaExcel! El foro más visitado sobre Excel en habla hispana.

    Si esta es tu primera visita, asegúrate de revisar los temas de la sección Utilización y Funcionamiento para familiarizarte con las funciones del foro. Si deseas publicar mensajes, será necesario que te Registres para que puedas dejar respuestas y crear tus propios mensajes, recuerda que es gratuito.

Solucionado Contar celdas por condicion de color de fondo y letra insertada

Tema publicado en 'Temas resueltos' iniciado por mapeg, 23 Oct 2009.

Estado del tema:
Cerrado para nuevas respuestas
  1. mapeg

    mapeg Nuevo Usuario

    Registrado:
    22 Oct 2009
    Mensajes:
    6
    Me Gusta recibidos:
    0
    Hola a todos,

    Tengo una duda que no puedo resolver, soy nueva en el foro y novata en Excel.

    El problema es el siguiente, necesito contar en un rango de celgas las que tengan un color de fondo determinado y cumplan la condicion de tener una letra dentro. Es decir, en un rango con celdas azules y salmón, el las que algunas celdas tienen una letra dentro, que cuente las celdas que son azules y con una letra dentro.

    Adjunto un archivo por si sirve de ayuda.

    Gracias de antemano por vuestra ayuda.

    Un saludo.

    PD He leido otros post y cuentan el color de la letra pero no el fondo.

    Adjuntos:

  2. luka79

    luka79 Usuario

    Registrado:
    18 Oct 2009
    Mensajes:
    91
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Hola Mapeg.

    Te devuelvo tu fichero con lo que quieres

    Un saludo

    Adjuntos:

  3. mapeg

    mapeg Nuevo Usuario

    Registrado:
    22 Oct 2009
    Mensajes:
    6
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Gracias!!.

    El problema es que no me sirve debido a que como según he visto la formula trabaja con toda la hoja y yo necesito que me cuente las celdas de un rango.

    Asimismo no sé como aplicarla, es decir, necesitaría que en la celda que yo quiero que cuente las celdas del rango determinado pueda poner = y la formula.

    Perdona por las molestias, no me explique bien en mi anterior pregunta.

    Un saludo.
  4. luka79

    luka79 Usuario

    Registrado:
    18 Oct 2009
    Mensajes:
    91
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Hola Mapeg.

    Parto de la base que no sé si en Excel 2007 (yo tengo el 2003) hay alguna función que permita lo que tu quieres.
    Creo que lo que tu quieres exigiría hacer una función y mis conocimientos de excel no llegan :( (todavía) hasta ese punto, pero he cambiado lo que te mandé para que te pida la primera celda y la última y te dé el resultado en la celda que tu quieras

    Saludos

    Adjuntos:

  5. sailepaty

    sailepaty Incondicional de Ayuda Excel

    Registrado:
    4 Oct 2008
    Mensajes:
    1.356
    Me Gusta recibidos:
    58
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Como defines que celdas tienen el fondo en azul y/o salmon? Lo pones manualmente o es un formato condicional?

    Saludos
  6. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Hola mapeg,

    de pronto con una función definida por el usuario (UDF), algo así:

    CÓDIGO:
    Function SumaColor(rColor As Range, rRangoSuma As Range)
    
    
        Dim rCelda As Range
    
        Dim iColor As Integer, iResultado As Integer
    
    
    
        iColor = rColor.Interior.ColorIndex
    
    
    
            For Each rCelda In rRangoSuma
    
                If rCelda.Interior.ColorIndex = iColor And rCelda = "x" Then
    
                    iResultado = iResultado + 1
    
                End If
    
            Next rCelda
    
    
    
        SumaColor = iResultado
    
    End Function
    la función creada será =sumacolor(rcolor;rRangoSuma)

    para rcolor seleccionas una celda con el color de referencia, en este caso, una celda con el color azul.

    para rRangoSuma seleccionas el rango que quieres sumar.

    El resultado será el que buscas.

    revisa el archivo a ver cómo te va.

    (si las celdas las coloreas por formato condicional la función no dará resultado).

    Adjuntos:

  7. luka79

    luka79 Usuario

    Registrado:
    18 Oct 2009
    Mensajes:
    91
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Hola mjofra


    Siguiendo tus indicaciones, le he añadido otra variable para que no sirva solo para una "x".

    CÓDIGO:
    Function SumaColor(rColor As Range, rRangoSuma As Range, rValor As Range)
        Dim rCelda As Range
        Dim iColor As Integer, iResultado As Integer
        Dim Valor As Variant
        iColor = rColor.Interior.ColorIndex
        Valor = rValor.Value
            For Each rCelda In rRangoSuma
                If rCelda.Interior.ColorIndex = iColor And rCelda = Valor Then
                    iResultado = iResultado + 1
                End If
            Next rCelda
        SumaColor = iResultado
    End Function
  8. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    fantástico luka, gracias, creo que así será mucho más versátil la UDF. No lo había pensado.
  9. luka79

    luka79 Usuario

    Registrado:
    18 Oct 2009
    Mensajes:
    91
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    El proximo paso que tengo es conseguir hacer una yo solito conmigo mismo :D :D desde el principio.
  10. mapeg

    mapeg Nuevo Usuario

    Registrado:
    22 Oct 2009
    Mensajes:
    6
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Hola de nuevo,

    Al final he encontrado esta solución que se asemeja a la vuestra:

    'Formula que sirve para contar en un rango determinado las celdas que son azul
    'clarito y llevan una x dentro


    Function contar2(Datos As Range) As Double
    Dim suma As Long
    Dim celda As Range

    suma = 0
    For Each celda In Datos.Cells
    If celda.Interior.ColorIndex = 34 And celda.Value = "x" Then suma = suma + 1
    Next

    contar2 = suma

    End Function

    También he buscado los códigos de los colores y son los siguientes:

    Color letra Numero
    Negro 1
    Blanco 2
    Rojo 3
    Verde Vivo 4
    Azul 5
    Amarillo 6
    Fucsia 7
    Turquesa 8
    Rojo Oscuro 9
    Verde 10
    Azul Oscuro 11
    Amarillo Oscuro 12
    Violeta 13
    Verde Azulado 14
    Gris 25% 15
    Gris 50% 16
    Azul Cielo 33
    Turquesa Claro 34
    Verde Claro 35
    Amarillo Claro 36
    Azul Palido 37
    Rosa Claro 38
    Lavanda 39
    Canela 40
    Azul Claro 41
    Aguamarina 42
    Verde lima 43
    Oro 44
    Anaranjado Claro 45
    Anaranjado 46
    Azul Grisaceo 47
    Gris 40% 48
    Verde Azulado Oscuro 49
    Verde Mar 50
    Verde Oscuro 51
    Verde oliva 52
    Marron 53
    Ciruela 54
    Añil 55
    Gris 80% 56



    Voy a revisar las vuestras a ver si me funcionan.

    Espero os sirva también de ayuda, soy bastante novata en esto y para mí ha sido todo un mundo descubrir esto, jeje.
  11. mapeg

    mapeg Nuevo Usuario

    Registrado:
    22 Oct 2009
    Mensajes:
    6
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Sailepaty

    Lo que hago es copiar formato y pegar, si las elijo manualmente tengo que volver a recalcular para que me lo coja correctamente.

    Un saludo.
  12. sailepaty

    sailepaty Incondicional de Ayuda Excel

    Registrado:
    4 Oct 2008
    Mensajes:
    1.356
    Me Gusta recibidos:
    58
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Veo que has resuelto tu problema, pero me pregunto no seria menos engorroso que utilizaras un caracter las celdas azules y otro diferente para las salmon y después un simple CONTAR.SI?

    Saludos
  13. mapeg

    mapeg Nuevo Usuario

    Registrado:
    22 Oct 2009
    Mensajes:
    6
    Me Gusta recibidos:
    0
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    Sí, lo que ocurre que se trata de un informe que va a ser publico para muchos trabajadores (calendario vacacional) y está marcado de ese modo desde dirección.

    ;)
  14. Outis

    Outis Nuevo Usuario

    Registrado:
    17 Oct 2009
    Mensajes:
    1
    Me Gusta recibidos:
    0
    necesito ayuda sobre lo que adjunto en al hoja

    Hola amigos soy principiante en esto, sucede que necesito hacer una programación en excel, espero me puedan ayudar estoy adjuntando mi archivo donde indico lo que necesitaria hacer
  15. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada


    bueno, y si quisieras usar el parámetro de valor como opcional quizás algo así:

    CÓDIGO:
    Function SumaColor(rColor As Range, rRangoSuma As Range, Optional vValor = "X")
    
        Dim rCelda As Range
        Dim iColor As Integer, iResultado As Integer
        
        iColor = rColor.Interior.ColorIndex
        
        If vValor <> "X" Then vValor = vValor.Value
        
            For Each rCelda In rRangoSuma
            
                If rCelda.Interior.ColorIndex = iColor And rCelda = vValor Then
                
                    iResultado = iResultado + 1
                    
                End If
                
            Next rCelda
            
        SumaColor = iResultado
        
    End Function
    así si no se escoge el parámetro "vValor", éste tendrá el valor predeterminado de "X" o el que le quieras asignar.
  16. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    ...y me quedé pensando, por si definitivamente no quieres usar el parámetro vValor entonces podrías usar algo así, que hará que cuando se omita el parámetro vValor sólo se tenga en cuenta el color de las celdas para el conteo:

    CÓDIGO:
    Function SumaColor(rColor As Range, rRangoSuma As Range, Optional vValor)
    
        Dim rCelda As Range
        Dim iColor As Integer, iResultado As Integer
        
        iColor = rColor.Interior.ColorIndex
        
        If IsMissing(vValor) Then
        
            For Each rCelda In rRangoSuma
            
                If rCelda.Interior.ColorIndex = iColor Then
                
                    iResultado = iResultado + 1
                    
                End If
                
            Next rCelda
            
            SumaColor = iResultado
            
        Else
        
            For Each rCelda In rRangoSuma
            
                If rCelda.Interior.ColorIndex = iColor And rCelda = vValor Then
                
                    iResultado = iResultado + 1
                    
                End If
                
            Next rCelda
            
            SumaColor = iResultado
            
        End If
            
    End Function
  17. mjrofra

    mjrofra Moderador Staff AyudaExcel

    Registrado:
    28 May 2009
    Mensajes:
    2.686
    Me Gusta recibidos:
    93
    Género:
    Masculino
    Respuesta: Contar celdas por condicion de color de fondo y letra insertada

    La línea que he puesto en rojo sobra... debería ser así:

    CÓDIGO:
    Function SumaColor(rColor As Range, rRangoSuma As Range, Optional vValor = "X")
    
        Dim rCelda As Range
        Dim iColor As Integer, iResultado As Integer
        
        iColor = rColor.Interior.ColorIndex
            
            For Each rCelda In rRangoSuma
            
                If rCelda.Interior.ColorIndex = iColor And rCelda = vValor Then
                
                    iResultado = iResultado + 1
                    
                End If
                
            Next rCelda
            
        SumaColor = iResultado
        
    End Function
    esto permitira que ingreses en la fórmula el valor ya sea haciendo referencia a un rango o en la fórmula directamente, por ejemplo: =sumacolor(A1;A1:B5;"z") o =sumacolor(A1;A1:B5;A2) ........ y si no lo ingresas el valor predeterminado será "X" o el que tu escojas-
Estado del tema:
Cerrado para nuevas respuestas

Compartir esta página