2011-03-07 2 views
4

동의하지 않는 경우에 I가 엑셀 스프레드 시트에 다음 데이터 :반환 모든 엑셀 열 값이

A B C 
1 b b b 

나는 각 (텍스트) 값을 비교 데이터 후 열에서 수식을 넣어 싶습니다 그들은 모두 같다면 즉, A = B = C이면 TRUE를 반환합니다. 하나 이상의 값이 일치하지 않으면 FALSE를 반환하고 싶습니다.

A B C D 
1 b b b TRUE 
2 b e b FALSE 
3 e b b FALSE 

내가 따라서

AND(A1=B1,A1=C1.. etc) 같은 것을 만들 수와 같은 논리적 인 기능을 알고 있어요 AND, 그러나, 이것은 곧 열 수가 증가함에 따라 다루기 힘든 빨리 가져옵니다.

데이터 재구성은 할 수 없습니다.

누구나 OOTB/VB 솔루션을 알고 있습니까?

답변

7

countifcount과 동일한 번호를 찾으면 모두 같습니다.

=IF(COUNTIF(A1:C1,A1)=COUNTA(A1:C1),"true","false") 

희망 사항을 찾으십시오. 테스트하려는 여러 열의 범위를 확장하면됩니다.

업데이트

으로는이 데이터 세트가 빈 셀이있는 경우 올바른 결과를 반환하지 댓글에서 지적했다.

범위의 빈 셀에있는 경우에도이 false를 반환합니다 :

여기
=IF(AND(COUNTIF(A1:C1;A1)=COUNTA(A1:C1);COUNTBLANK(A1:C1)=0);"true";"false") 
+0

우수. 그건 대접이야. – trickwallett

+0

@trickwallett, 괜찮습니다! –

+1

FYI - 열 값 중 하나가 비어 있으면 작동하지 않습니다. – Jon

1

은 VBA UDF이다 : 그것은 대소 문자를 구분 제거 옵션이 있지만

Option Explicit 
Option Compare Text 
Public Function AllSame(theRange As Range) As Boolean 
    Dim vR As Variant 
    Dim vC As Variant 

    AllSame = True 
    vR = theRange 
    If IsArray(vR) Then 
     vC = vR(1, 1) 
     For Each vC In vR 
      If vC <> vR(1, 1) Then 
       AllSame = False 
       Exit For 
      End If 
     Next vC 
    End If 
End Function 
1

텍스트를 비교 만들려면 (셀에 입력 한 후 Ctrl + Shift + Enter)를 사용하여 배열 수식을 사용할 수도 있습니다.

{=IF(SUM(COUNTIF(A1:C1,A1:C1))=POWER(COUNTA(A1:C1), 2),"true","false")} 

범위에 빈 셀이 있어도 작동합니다.

.

UPDATE :
이 배열 수식도 범위에서만 1 고유 한 가치가 있다고 확인하여, 사용할 수 있습니다. 또한 범위에 공백이 있어도 여전히 정확한 값을 반환합니다.

{=SUM(IFERROR(1/COUNTIF(A2:C2,A2:C2), 0)) = 1}