000부터 999까지의 세 자리 숫자 목록에서 최소한 두 자리 숫자가 동일한 숫자를 식별할 수 있어야 합니다. 수식을 알려주실 수 있나요?
나는 노력했다 =IF(LEFT(A98,1) = "LEFT(A98,2)"OR LEFT(A98,2) = "LEFT(A98,3)" OR LEFT(A98,1) ="LEFT(A98,3)" , "0","1")
. 하지만 저는 Excel에 대한 경험이 매우 부족하여 이 공식을 받아들이지 않습니다.
답변1
실제로 그렇게 멀지는 않습니다.
MID()
대신에 를 사용하세요 . 왜냐하면 비교를 위해 단지 하나의 문자가 아닌 모든 문자를 사용하기 LEFT()
때문입니다 .LEFT()
불필요한 따옴표를 제거하면 작동합니다.
IF(OR(MID(A98,1,1)=MID(A98,2,1),MID(A98,1,1)=MID(A98,3,1),MID(A98,2,1)=MID(A98,3,1)),"1","0")
내가 쓴 내용을 확실히 이해하고 잘못 입력했거나 대괄호를 잊어버린 경우 수정할 수 있도록 하십시오. 여기에는 확인할 컴퓨터가 없고 휴대폰으로 입력하고 있습니다.
답변2
Aganju의 대답은 아마도 당신이 찾고 있는 것일 것입니다. 하지만 Excel 문제에 대한 해결책은 문제를 다른 방식으로 보는 데서 오는 경우가 많습니다. 뒷주머니에 넣어둘 수 있는 몇 가지 아이디어가 포함된 약간 다른 접근 방식이 있습니다.
왼쪽, 오른쪽, 중앙
모든 것이 세 자리 숫자이기 때문에 숫자를 다음과 같이 생각하는 것이 더 쉽습니다.
LEFT(A98,1)
MID(A98,2,1)
RIGHT(A98,1)
개인적인 취향에 따라 해당 기능을 사용하는 방법을 문서화합니다. 가장 왼쪽의 1자, 가운데는 위치 2에서 시작하여 길이 1, 가장 오른쪽의 1자입니다.
역 사고
일치하는 숫자의 조합을 찾는 방향에서 접근했습니다. 이를 위해서는 IF, OR 및/또는 AND의 조합이 필요합니다. 다른 방향에서 접근하는 경우 제외하려는 조건은 단 하나뿐입니다. 모든 숫자가 다릅니다. 해당 단일 사례에 대한 테스트를 더 간단하게 수행할 수 있습니다.
불리언 산술
이것을 다른 트릭과 결합하겠습니다. 1
또는 결과를 찾고 있으므로 0
이미 참과 거짓을 나타내는 측면에서 생각하고 있습니다. 0
및 의 일부 수학 속성을 사용할 수 있습니다 1
.
- 0 곱하기 무엇이든 0이다
- 0을 여러 개 곱하면 0이 됩니다.
- 여러 개를 곱하면 하나가 됩니다.
- 0 또는 1 묶음의 곱이 하나를 산출할 수 있는 유일한 방법은 모두 1인 경우입니다.
종합해보면
Excel에서는 true
및 을 및 false
로 처리합니다 . 따라서 IF, AND 또는 OR이 필요 없이 다음을 사용할 수 있습니다.1
0
= (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))
이는 1
모든 숫자가 다르고 0
조합이 동일한 경우에 발생합니다. 그것은 사물을 차별화합니다. 그러나 질문에서 설명한 대로 반대가 되어야 한다는 생각이 있다면 1
마이너스 공식을 사용하여 이를 되돌릴 수 있습니다.
= 1 - (LEFT(A98,1)<>MID(A98,2,1)) * (LEFT(A98,1)<>RIGHT(A98,1)) * (MID(A98,2,1)<>RIGHT(A98,1))
그리고 0
or 1
값은 논리 테스트에 의해 직접 생성됩니다. 평가 조건에 따라 결과에 이러한 값을 할당할 필요는 없었습니다.
답변3
LEFT
MID
@fixer1234의 & 와 0을 곱하는 아이디어를 사용하는 또 다른 약간 다른 방법이 있습니다 RIGHT
.
=IF((LEFT(A99,1)-MID(A99,2,1)) * (LEFT(A99,1)-RIGHT(A99,1)) * (MID(A99,2,1)-RIGHT(A99,1))=0,1,0)
쌍 중 하나라도 같으면 곱셈의 결과는 0이고 결과는 IF
1입니다.