Chris quiere contar las celdas que contienen el valor de texto A o el valor de texto B, en cualquier parte del texto de la celda. Si la celda contiene tanto A como B, quiere contarlo, pero solo una vez. Por ejemplo, Chris tiene tres celdas que contienen «semilla de manzana», «manzano» y «semilla de durazno» y quiere saber el número de celdas que contienen «manzana» o «semilla». (La respuesta correcta que debería devolverse es 3.)

Hay muchas formas de abordar esto. Al considerar las soluciones, examiné solo aquellas soluciones que evitan respuestas intermedias, que ocupan columnas adicionales. La primera solución implica usar la función CONTAR.SI de esta manera:

=COUNTIF(A1:A9,"apple")+COUNTIF(A1:A9,"seed")

-COUNTIF(A1:A9,"seedapple")-COUNTIF(A1:A9,"appleseed")

La fórmula cuenta todas las celdas que contienen «manzana» o «semilla»

y luego resta todas las celdas que contienen «semilla» seguida de «manzana»

(ambas palabras están en la celda) o «manzana» seguida de «semilla» (las mismas palabras en orden inverso).

Otra solución, esta un poco más corta, se basa en las funciones COUNTA y FIND, como se muestra aquí:

=COUNTA(A1:A9)-SUMPRODUCT(--(ISERROR(FIND("apple",A1:A9)))

* --ISERROR(FIND("seed",A1:A9)))

La fórmula cuenta las celdas que contienen valores y luego resta todas aquellas celdas que no contienen ni «manzana» ni «semilla».

También puede, si lo prefiere, utilizar una de las funciones de la base de datos de Excel.

Siempre que tenga un encabezado de columna para sus frases originales, esto no es tan difícil de hacer y resulta en la fórmula más corta. Todo lo que necesita hacer es configurar una tabla de criterios correspondiente. Por ejemplo, digamos que sus datos están en A1: A9 y la primera celda de la columna contiene un encabezado como «Mis frases». En otra columna debe poner el mismo encabezado y luego, en las dos celdas directamente debajo de él, colocar estas dos fórmulas:

apple seed

Los criterios especifican que desea hacer coincidir cualquier celda que contenga «manzana» o «semilla» dentro de la celda. Con esta configuración (supongo que colocó la tabla de criterios en D1: D3), puede usar la siguiente fórmula:

=DCOUNTA(A1:A9,1,D1:D3)

Por supuesto, también puede usar una fórmula de matriz (ingresada presionando Ctrl + Shift + Enter) para obtener su respuesta. La siguiente es una fórmula que se basa, nuevamente, en las frases que se verifican para estar en A1: A9:

=SUM(--((ISNUMBER(FIND("apple",A1:A9))+ISNUMBER(FIND("seed",A1:A9)))>0))

Si se inclina más por trabajar con macros, puede crear una función definida por el usuario que devuelva el recuento por usted. El siguiente es un ejemplo de uno que funcionará:

Function FindTwoStrings(rng As Range, s1 As String, _   s2 As String) As Integer     Application.Volatile     If TypeName(rng) <> "Range" Then Exit Function     Dim cell As Range     For Each cell In rng.Cells         If (InStr(1, UCase(cell.Value), UCase(s1), _           vbTextCompare) > 0) Or (InStr(1, UCase(cell.Value), _           UCase(s2), vbTextCompare) > 0) Then _           FindTwoStrings = FindTwoStrings + 1     Next cell End Function

Para usar la función, puede usar esta fórmula en una celda:

=FindTwoStrings(A1:A9,"apple","seed")

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (9326) se aplica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 y Excel en Office 365. Puede encontrar una versión de este consejo para la interfaz de menú anterior de Excel aquí:

link: / excel-Checking_for_Either_of_Two_Text_Values ​​[Comprobando cualquiera de los dos valores de texto].