세 개의 셀이 있는데 그 조합은 비어 있습니다. 공백이 아닌 모든 셀이 같은지 확인하고 싶습니다. 셀 1과 2에 값이 있고 셀 3이 비어 있으면 셀 1과 2가 같으면 수식이 TRUE를 반환하기를 원합니다.
이에 대한 기본 수식 이 없으면 VBA 매크로 만 작성합니다.
업데이트 : 실제로 VBA 매크로를 작성하는 것이 더 빠릅니다. 나는 .NET / c # 개발자이고 그날부터 많은 VBA를 잊어 버렸으므로 여기에서 코드를 개선 할 수 있습니다 (특히 반환 값 설정 및 함수 종료).
Public Function NonblankValuesAreEqual(cells As Range) As Boolean
Dim lastval As String
lastval = cells(1).Value
For i = 2 To cells.Count
If lastval <> "" Then
If cells(i).Value <> "" Then
If cells(i).Value <> lastval Then
NonblankValuesAreEqual = False
Exit Function
End If
End If
End If
lastval = cells(i).Value
Next
NonblankValuesAreEqual = True
End Function
답변
이미 매크로를 사용하여 답변을 받았지만 여기에는 VBA가 아닌 솔루션이 있습니다. 배열 수식이며 ctrl + shift + enter로 확인해야합니다.
=(SUM(IFERROR(1/COUNTIF(A1:A3,A1:A3),0))=1)
이 수식은 빈 셀을 무시하고 범위의 고유 값 수를 계산합니다. 고유 값의 수가 1이면 모든 값이 동일하고 수식이 TRUE를 반환합니다. 귀하의 질문에 지정되지 않은 유일한 것은 모든 셀이 비어있는 경우 수행해야합니다. 현재 수식은 TRUE를 반환하지만 논리를 추가하여 쉽게 변경할 수 있습니다.
답변
각 열 쌍이 정확히 대소 문자를 구분하는지 또는 공백을 포함하는지 확인하십시오.
=OR(EXACT(A2,B2),ISBLANK(A2),ISBLANK(B2))
=OR(EXACT(A2,C2),ISBLANK(A2),ISBLANK(C2))
=OR(EXACT(B2,C2),ISBLANK(B2),ISBLANK(C2))
=AND(D2:F2)
예:
A B C AB AC BC AND
1 1 1 TRUE TRUE TRUE TRUE
1 1 TRUE TRUE TRUE TRUE
A TRUE TRUE TRUE TRUE
A TRUE TRUE TRUE TRUE
A TRUE TRUE TRUE TRUE
a A a FALSE TRUE FALSE FALSE
a a TRUE TRUE TRUE TRUE
a 2 TRUE FALSE TRUE FALSE
A A TRUE TRUE TRUE TRUE
A A TRUE TRUE TRUE TRUE
A B TRUE TRUE FALSE FALSE
A B C FALSE FALSE FALSE FALSE
참고 : 더 큰 세트의 경우 인접한 열 수가 크게 증가합니다. n! / 2
답변
이 작은 UDF () 사용해보십시오 :
Public Function EqualTest(r1 As Range, r2 As Range, r3 As Range) As Variant
Dim BlankCount As Long, v1 As Variant, v2 As Variant, v3 As Variant
v1 = r1.Value
v2 = r2.Value
v3 = r3.Value
BlankCount = 0
If v1 = "" Then BlankCount = BlankCount + 1
If v2 = "" Then BlankCount = BlankCount + 1
If v3 = "" Then BlankCount = BlankCount + 1
If BlankCount > 1 Then
EqualTest = True
Exit Function
End If
If BlankCount = 0 Then
If v1 = v2 And v1 = v3 And v2 = v3 Then
EqualTest = True
Exit Function
Else
EqualTest = False
Exit Function
End If
End If
If v1 = v2 Or v1 = v3 Or v2 = v3 Then
EqualTest = True
Else
EqualTest = False
End If
End Function
노트:
셀이 연속 될 필요는 없으며 UDF () 는 숫자 셀과 텍스트 셀 모두에서 작동합니다.
답변
시험:
=COUNTA(A:A)=COUNTIF(A:A,A1)
기본적으로 비 공백 셀 수를 계산합니다. 첫 번째 셀과 일치하는 셀 수를 계산하십시오. 그것들이 동일하면 모두 동일해야합니다. 두 번째 COUNTIF에 대해 누가 계산하는지는 중요하지 않습니다 … 모두 동일하지 않으면 COUNTA와 같지 않을 것이므로;)
[편집] 첫 번째 셀이 비어 있으면 .. 대신 다음을 시도하십시오.
=COUNTA(A:A)=COUNTIF(A:A,VLOOKUP("*",A:A,1,FALSE))
COUNTIF에서 체크인 할 첫 번째 공백이 아닌 셀을 찾으려고 시도합니다.