Tengo una sola columna de datos codificados en Excel como este:
a
b
ab
bc
ad
b
ac
Sé que puedo encontrar las instancias de todas las celdas que contienen "a" con =COUNTIF(A1:A7,"*a*")
. Eso me daría 4. También puedo contar "b", =COUNTIF(A1:A7,"*b*")
lo que da como resultado 4.
Sin embargo, lo que necesito es contar las celdas que contienen "a" O "b" perono cuenta dos vecescélulas que contienen ambos. =COUNTIF(A1:A7,"*a*")+COUNTIF(A1:A7,"*b*")
= 8, pero quiero una condición OR que cuente 7 sin contar dos veces "ab".
Si esto fuera una expresión regular, podría hacer algo como =COUNTIF(A1:A7,"[ab]")
pero no puedo...
ACTUALIZACIÓN: Como se indica enun comentario, este es un ejemplo simplificado. Tengo AM en el conjunto de datos y es posible que necesite contar combinaciones de dos, tres o incluso siete valores diferentes, por lo que necesito una solución que pueda escalarse.
Respuesta1
Esta solución debería funcionar como una implementación escalable que pueda ampliarse fácilmente para otras cadenas.
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))>0))
Ejemplo de agregar otra cadena:
=SUMPRODUCT(--(ISNUMBER(FIND("a",A1:A7))+ISNUMBER(FIND("b",A1:A7))+ISNUMBER(FIND("c",A1:A7))>0))
Esto funciona ejecutando la FIND
función en cada celda del rango y utilizándola ISNUMBER
para determinar si se encontró una coincidencia. Los resultados se suman para cada celda y luego, al final, se especifica que se debe contar >0
cualquier celda que coincida con al menos una de las s. FIND
Lo SUMPRODUCT
suma todo para producir una respuesta final.
Para una coincidencia que no distinga entre mayúsculas y minúsculas, puede reemplazar la FIND
función con SEARCH
.