leer puntuación en IF

leer puntuación en IF
=IF(MID(B3,ROW(A:A),1)=MID(B3,LEN(B3)+1-ROW(A:A),1),"T")

Estaba leyendo Palíndromo en la celda B3 con la fórmula anterior, funciona bien (si se encuentra sin puntuación ni espacios). pero cuando intento leer Palindrome con puntuación y espacios no se lee bien.

Por ejemplo:-

B3:lol---->Palindrome B3:l ol---->Palindrome ........(pero como hay espacio entre l y ol, no debería ser Palindrome)

¿No entiendo qué puntos me perdí en mi fórmula? ¿Alguien puede ayudarme a conseguir que mi fórmula sea universal? ¡Gracias!


Saludos,

Respuesta1

Su fórmula actual tiene varios problemas importantes, por lo que me sorprende mucho oírle declarar que "funciona bien".

En primer lugar, no existe ninguna función externa que actúe sobre la declaración IF. Por lo tanto, se consideran todos los elementos excepto el primero de la matriz producida por la comparación. En efecto, su fórmula devolverá "T" si la primera letra de su cadena coincide con la última: todas las demás letras dentro de la cadena son completamente redundantes en lo que respecta a esta expresión. Según su fórmula, una cadena como ABCDEA se considera un palíndromo. Y esta es también la razón por la que su ejemplo de "L OL" devuelve "T": los caracteres del medio simplemente no importan.

En segundo lugar, está ingresando una fórmula en forma de matriz con el valor de las entradas de una columna completa que se pasan a la función FILA para generar la matriz que se pasará como MID.número_inicioparámetro. Esto no sólo significa que Excel tiene que generar una matriz que consta de más de un millón de elementos (lo que requiere una cantidad sorprendente e innecesaria de recursos), sino que también significa que su segunda matriz constará de miles y miles de valores negativos, que por supuesto dará lugar a errores cuando se pase a MID.

Intentar:

=IF(SUMPRODUCT(N(MID(B3,ROW(INDEX(A:A,1):INDEX(A:A,LEN(B3))),1)<>MID(B3,LEN(B3)+1-ROW(INDEX(A:A,1):INDEX(A:A,LEN(B3))),1)))=0,"T","")

Saludos

información relacionada