Saltar al contenido

Contar rangos variables


jhonam47

Recommended Posts

Buena noche a todos, soy nuevo en esto y necesito de la ayuda de los expertos

tengo una hoja de calculo, similar a esta

     A                   B                 C                 D                 E          F

1  Director Asistente Gerente Ing Cajero
2  R A C I  
3  RA C     I
4  C A I r  
5  C I A   R
6  RA C     I
7  RA C     I
8  RA C     I

Lo que necesito es una macro que recorra los rangos de de A2:E2 y me escriba en F2 Cuantas letras R encontró y así valla bajando hasta el final, el problema que tengo es que tanto el valor desde A hasta E puede ser mayor o menor y a su vez el valor de 1 puede ser mayor o menos y el texto buscado puede variar de R o A o C o I

Espero pueda haberme explicado y gracias

Enlace a comentario
Compartir con otras webs

Hola

Dibuja un botón en tu hoja1 y coloca el siguiente código :

Dim Uf As String
Dim I As Integer
Dim J As Integer
Dim C As Integer
Dim R As Integer


Uf = Hoja1.Range("A" & Rows.Count).End(xlUp).Row



    For I = 1 To 5
    
    
            For J = 1 To Uf
    
    
                For R = 1 To Len(Hoja1.Cells(1 + J, I))
                
                    If Mid(Hoja1.Cells(1 + J, I), R, 1) = "R" Or Mid(Hoja1.Cells(1 + J, I), R, 1) = "r" Then
                            
                            C = C + 1
                    End If
                
                Next R
    
            
            Next J
    
    
    Next
                Hoja1.Cells(2, 6) = C

Saludos.

Enlace a comentario
Compartir con otras webs

Aquí está mi aporte (no se me podría olvidar, jaja), basado en las ideas de enigma, pero la búsqueda de la letra la asigné a una función auxiliar, donde se le puede pasar como argumento la letra a buscar, y usamos Lcase() para comparar por minúsculas y así no diferenciar entre minúsculas y mayúsculas.  Básicamente la idea central es:

    Dim Uf As String
    Dim I As Integer
    Dim J As Integer

    Dim total As Integer
    Dim letra As String

    Uf = Hoja1.Range("A" & Rows.count).End(xlUp).Row

    ' Letra a buscar, puedes cambiar por otra
    letra = "R"

    For I = 2 To Uf
    
        ' La variable total cuenta el número de apariciones de la letra en
        ' las palabras de la fila I
        total = 0
        For J = 1 To 5
            total = total + contarLetras(Hoja1.Cells(I, J), letra)
        Next
        Hoja1.Cells(I, 6) = total
    Next

Aquí está el archivo, y recuerda joham si te gustó este aporte, no olvides recompensarme con un "me gusta", así me ayudas a construir mis puntos de reputación :)

 

Jhonam_ContarRangos.xlsm

Enlace a comentario
Compartir con otras webs

  • 4 weeks later...

Archivado

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

  • 93 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • No va a ser necesario distinguir el tipo de proceso entre 1 y 2. Revisa el adjunto a ver si es eso lo que quieres. Function MediaAttention(mImp As Range, _ q25 As Range, q50 As Range, _ Optional q75 As Range, _ Optional q100 As Range) As Double '-- Opción 1 If q75 Is Nothing And q100 Is Nothing Then MediaAttention = q25 / q50 Exit Function End If '-- Opción 2 MediaAttention = ((0.25 * (q25 - q50)) / mImp) + _ ((0.5 * (q50 - q75)) / mImp) + _ ((0.75 * (q75 - q100)) / mImp) + _ (q100 / mImp) End Function   Media Attention Formula 1.2.xlsb
    • Gracias tomarse el tiempo de leer por responder Maestro @Antoni Adjunto el archivo con la idea a la que deseo llegar, sigo atento. Mil gracias por el tiempo y la ayuda brindada   Media Attention Formula 1.2.xlsb
    • He analizado la UDF y entiendo perfectamente lo que hace, lo que no entiendo es lo que pretendes hacer. Mejor sube un ejemplo resuelto de  como debería funcionar la UDF con los nuevos parámetros solicitados. 
    • Gracias, ya lo conseguí solucionar
    • Hola a todos Primero que nada deseo agradecer el tiempo en leer este post, Muchas Gracias. Me acerco a ustedes para pedir su ayuda para lo siguiente: Tengo una UDF, la cual tiene dos escenarios: 1.- Si Tiempo Promedio y Duración del Video son diferentes de 0, hacer el calculo 2.- Si lo anterior es igual a 0, se realiza el otro calculo por cuartiles. El detalle es que son muchas celdas a seleccionar, lo cual creo puede ser engorroso, entonces, pensando en simplificar la función, me pregunte si fuera posible: a.- Colocar 1 al principio de la función y después solo seleccionar 2 celdas correspondientes (Rango continuo o discontinuo) b.- Colocar 2 al principio de la función y después seleccionar las 5 celdas correspondientes (Rango continuo o discontinuo) Espero me puedan ayudar y/o orientar al respecto, quedo atento para cualquier duda, de antemano les agradezco cualquier ayuda brindada. Mil Gracias!! Media Attention Formula 1.1.xlsb  
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • 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.