¿Contarproducto?

Trato de encontrar solución a una función que trabaje como SUMAPRODUCTO.
Quiero averiguar el número de palabras de la columna B que comienza por una letra
en concreto y que reúnen las condiciones de de la columna A y B. Si utilizo la función de
SUMAPRODUCTO, sería algo así:
=SUMAPRODUCTO((A1:A15="Operario")*(B1:B15="T1")*(C1:C15="M"))
El problema es que si quiero saber cuantos serían M, MF, MFH... Debería de colocar un
asterisco detrás de la M, tal que así:
=SUMAPRODUCTO((A1:A15="Operario")*(B1:B15="T1")*(C1:C15="M*"))
Pero no me funciona. En Excel 2007 sí que hay una funciona que me lo hace, pero a la hora de
compartir archivos no la reconoce 2003. Esta unción es CONTAR. SI. CONJUNTO

2 Respuestas

Respuesta
1
Entiendo, bueno empecemos con un ejemplo intuitivo que te ayudara! Ingresa los siguientes valores en las celdas indicadas:
A1: Operario | B1: T1 | C1: M
A2: Supervisor | B2: T2 | C2: MF
A3: Operario | B3: T1 | C3: MFH
A4: Operario | B4: T1 | C4: MF
A5: Operario |  B5: T1 | C5: MFH
****
Tu rango es A1:C5. VAmos a tener que emplear una columna auxiliar. Emplearemos la columna DE para ello. Situate en la celda D1 e ingresa esta fórmula:
=A1&B1&C1
Esta fórmula concatenara los valores de la fila1 sin dejar espacios en blanco. Esta fórmula arrastrala hasta D5.
Ahora, imaginemos que la fórmula del conteo la hagamos en la celda F3. En F3 ingresa esta fórmula:
=CONTAR.SI(D1:D5;"Operario"&"T1"&"M*")
[Fijate si tu separador de argumento de funciones es punto y coma o coma. Yo use punto y coma ";"]
El resultado de este ejemplo devolverá 4. Ahora ingresemos otra fórmula, si gustas en otra celda como esta:
=CONTAR.SI(D1:D5;"Operario"&"T1"&"MFH")
Devolverá 2. Con esta fórmula no tendrás problemas en ambas versiones de Excel. La columna DE si gustas la puedes ocultar. No habrá problemas en el calculo.
Respuesta
1
Se me ocurren varias opciones.
a- Hacer una función en VBA. Puede ser complicado y lento si no te manejas bien.
b- Usar otras alternativas. Si como me dices quieres contar palabras puedes hacer una función IF() para poner un 1 cuando se cumpla la condición. Por ejemplo
If (Mid(A2;1;1)="M";1;0) Esto devuelve un 1 si el valor empieza por M
If (Mid(A2;1;len(A1))=A1;1;0) Esto devuelve un 1 si el valor empieza por 'lo que tengas en A1'
Si hay más de un valor puedes poner varias columnas auxiliares, una para cada caso y luego sumar y hacer las operaciones en otra columna final. Puede parecer más complicado pero es sencillo. Y más potente para mi gusto.
Ya me dices cual prefieres por si quieres que veamos lo de la macro.
Gracias de antemano por tu pronta respuesta, pero el problema es que no puedo crear más columnas, no tengo espacio. Mi objetivo es que en un fila (por ejemplo la 300) de cada una de las 200 columnas, aparezca el resultado de ese valor que contiene una cadena específica y que a su vez reúne las condiciones de la columna A y B. He estado probando con Expresiones Regulares, pero el Excel me va muy lento.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas