Función o formular que me indique cunado hay coincidencia en textos

Desearía saber si hay una formular que me diga "si" o "no" o me arroje la palabra y/o numero que hay en común entre dos textos de dos celdas diferentes.

Por ejemplo, en la celda a1 tengo "el mar el lindo porque me gusta salir a broncear me" y en la celda b1 tengo la frase "me gusta salir con mi familia a pasear, especialmente al mar"

La hay una coincidencia en ambos textos con la palabra "mar", deseo saber si hay una formula que me indique cuando efectivamente hay una coincidencia de ese tipo.

1 respuesta

Respuesta
3

Para hacerlo con fórmulas, tendrías que dividir cada texto en celda1, y después, con varias fórmulas comparar cada celda del texto1 con las celdas del texto2.

Te recomiendo una función (udf), te anexo el código para que lo pongas en un módulo:

Function Compara_Celdas(celda1 As Range, celda2 As Range)
'Por.Dante Amor
    c1 = Split(celda1.Value, " ")
    c2 = Split(celda2.Value, " ")
    cad = ""
    For Each dato1 In c1
        For Each dato2 In c2
            If LCase(dato1) = LCase(dato2) Then
                cad = cad & dato1 & ", "
            End If
        Next
    Next
    If cad <> "" Then
        cad = Left(cad, Len(cad) - 2)
    Else
        cad = "No hay coincidencias"
    End If
    Compara_Celdas = cad
End Function

En la celda C1 pon la siguiente función:

=Compara_Celdas(A1,B1)

De hecho, en tu ejemplo las palabras que se repiten son:

mar, me, gusta, salir, a


Sal u dos

¡Gracias! Por dios hombre, si que sabes de esto, va de maravilla. Aun que me gustaría saber si se puede crear una fórmula similar a esa, pero que me diga la cantidad de coincidencia que hay entre los textos de una celda con otra. Por ejemplo en una celda tengo "Tienda mixta don pacho" y en otra tengo "La tienda de don pacho" en ese caso hay 3 coincidencia, ¿habría manera de crear una fórmula que me denote ese 3?

Te anexo otra función con el nombre

=Compara_Cuenta(A1,B1)

Function Compara_Cuenta(celda1 As Range, celda2 As Range)
'Por.Dante Amor
    c1 = Split(celda1.Value, " ")
    c2 = Split(celda2.Value, " ")
    can = 0
    For Each dato1 In c1
        For Each dato2 In c2
            If LCase(dato1) = LCase(dato2) Then
                can = can + 1
            End If
        Next
    Next
    Compara_Cuenta = can
End Function

sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas