IF에서 구두점 읽기

IF에서 구두점 읽기
=IF(MID(B3,ROW(A:A),1)=MID(B3,LEN(B3)+1-ROW(A:A),1),"T")

위 수식을 사용하여 셀 B3에서 Palindrome을 읽고 있었는데 제대로 작동합니다(구두점 및 공백 없이 찾으면). 하지만 구두점과 공백이 포함된 Palindrome을 읽으려고 하면 잘 읽히지 않았습니다.

예를 들어:-

B3:lol---->Palindrome B3:l ol---->Palindrome ........(그러나 l과 ol 사이에 공백이 있으므로 Palindrome이 되어서는 안 됩니다)

내 수식에서 내가 놓친 점을 이해하지 못합니까? 누구라도 내 공식을 보편적으로 사용할 수 있도록 도와줄 수 있나요? 감사해요!


문안 인사,

답변1

귀하의 현재 수식에는 몇 가지 큰 문제가 있으므로 귀하가 "잘 작동한다"고 선언하는 것을 듣고 매우 놀랐습니다.

우선, IF 문에 작용하는 외부 함수가 없습니다. 따라서 비교를 통해 생성된 배열의 첫 번째 요소를 제외한 모든 요소가 고려됩니다. 실제로 문자열의 첫 번째 문자가 마지막 문자와 일치하면 수식은 "T"를 반환합니다. 문자열 내의 다른 모든 문자는 이 표현식에 관한 한 완전히 중복됩니다. 귀하의 수식에 따르면 ABCDEA와 같은 문자열은 회문으로 간주됩니다. 그리고 이것이 "L OL"의 예가 "T"를 반환하는 이유이기도 합니다. 중간 문자는 단순히 중요하지 않습니다.

둘째, MID로 전달할 배열을 생성하기 위해 전체 열의 항목 상당이 ROW 함수에 전달되는 수식을 배열 입력합니다.시작_번호매개변수. 이는 Excel이 백만 개가 넘는 요소로 구성된 배열을 생성해야 한다는 것을 의미할 뿐만 아니라(놀랍고 불필요한 양의 리소스가 필요함) 두 번째 배열이 수천 개의 음수 값으로 구성된다는 의미이기도 합니다. MID로 전달되면 오류가 발생합니다.

노력하다:

=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","")

문안 인사

관련 정보