Graham은 B1과 C1이라는 두 개의 셀을 참조하는 수식을 사용합니다. 수식은 = IF (A1 = 1, IF (B1> C1, B1, C1))에서와 같이 셀 중 하나의 값을 반환하는 것입니다. B1과 C1 모두 일반적으로 날짜를 포함하지만 때로는 둘 중 하나 또는 둘 다 비어있을 수 있습니다. 둘 다 비어 있으면 반환 된 값 (비어 있기 때문에 0)이 1/0/1900으로 표시됩니다. 두 셀이 모두 비어 있으면 Graham은 수식이 0이 아닌 빈 값을 반환하도록합니다.

이러한 요구에 접근 할 수있는 몇 가지 방법이 있습니다. 하지만 먼저 Graham의 예제 공식으로 시작하겠습니다.

=IF(A1=1, IF(B1>C1, B1, C1))

수식은 A1에 값 1이 포함되지 않은 경우 반환되어야하는 내용을 제공하지 않으므로 약간 “불완전”합니다. 작성된대로 A1에 2 (또는 1을 제외한 다른 값)가 있으면 수식은 “FALSE”를 반환합니다. “. 따라서 수식을 약간 수정하여 A1이 1이 아니면 다음과 같이 “빈”값을 반환하도록합니다.

=IF(A1=1, IF(B1>C1, B1, C1), "")

다음으로 “B1> C1″에서 무슨 일이 일어나고 있는지 이해하는 것이 중요합니다

비교. 물론 날짜는 내부적으로 숫자 값 (일련 번호)으로 저장됩니다. B1에 C1보다 최신 날짜가 포함 된 경우 B1의 일련 번호는 C1의 일련 번호보다 큽니다.

이 외에도 B1 및 C1의 데이터 특성에 따라 비교 (>)가 작동하는 방식이 결정됩니다.

  1. 두 셀에 모두 숫자 값 (날짜 포함)이 포함되어 있으면 비교가 예상대로 작동합니다.

  2. 셀 중 하나에 텍스트 값이 포함되어 있으면 둘 중 하나에 숫자 값이 포함되어 있더라도 두 셀 모두 텍스트 값이 포함 된 것처럼 처리됩니다.

  3. 셀 중 하나가 비어 있으면 해당 셀은 값 0을 포함하는 것처럼 처리됩니다.

이를 기반으로 한 셀에 날짜가 있고 다른 셀이 비어 있으면 일련 번호 (날짜)를 0 (빈 셀)과 비교하는 것과 동일하므로 일련 번호는 항상 빈 셀보다 큽니다. 두 셀이 모두 비어 있으면 둘 다 0을 포함하는 것으로 처리되므로 둘 다 동일합니다.

따라서 Graham의 공식에서 셀 A1에는 값 1이 포함되고 셀 B1은 비어 있으며 셀 C1은 비어 있다고 가정 해 보겠습니다. 다음은 Excel에서 수식을 “번역”하는 방법입니다.

=IF(A1=1, IF(B1>C1, B1, C1), "")

=IF(1=1, IF(B1>C1, B1, C1), "")

=IF(B1>C1, B1, C1)

=IF(0>0, B1, C1)

=C1 =0

이것이 Graham이 수식에 의해 반환 된 0을 보는 이유이며 0이 날짜 일련 번호로 간주되면 1/0/00 (또는 1/0/1900)으로 표시됩니다.

이를 방지하려면 B1과 C1이 모두 비어 있는지 확인해야합니다.

이를 수행 할 수있는 방법에는 여러 가지가 있습니다. 그의 공식에 대한 다음 변형을 고려하십시오.

=IF(A1=1, IF((B1+C1=0), "", IF(B1>C1, B1, C1)), "")

이 변형은 IF 문을 추가하여 C1에 추가 된 B1이 0과 같은지 확인합니다. Excel은 공백과 0이이 컨텍스트에서 동일하다고 간주하기 때문에 둘 다 비어있는 경우가됩니다. 단점은 B1 또는 C1에 텍스트 값이 포함 된 경우 수식에서 #VALUE 오류가 반환된다는 것입니다.

더 나은 변형은 다음과 같습니다.

=IF(A1=1, IF(AND(B1=0,C1=0), "", IF(B1>C1, B1, C1)), "")

이 구현에서 IF 문은 AND 함수를 사용하여 B1과 C1이 모두 0인지 확인합니다. 이렇게하면 잠재적 인 #VALUE 오류 문제도 해결됩니다.

B1과 C1이 모두 비어 있는지 확인하려면 다른 접근 방식을 사용해야합니다. 한 가지 방법은 COUNTA 함수를 사용하는 것입니다.

=IF(A1=1, IF(COUNTA(B1:C1)=0, "", IF(B1>C1, B1, C1)), "")

B1과 C1이 동시에 텍스트 값을 포함하지 않는다는 사실을 알고있는 경우 위의 수식에서 COUNTA 함수 대신 COUNT 함수를 사용할 수도 있습니다.

또 다른 방법은 COUNTBLANK 함수를 거의 동일한 방식으로 사용하는 것입니다. 범위에서 비어있는 셀 수를 반환합니다.

=IF(A1=1, IF(COUNTBLANK(B1:C1)=2, "", IF(B1>C1, B1, C1)), "")

유사한 변형은 AND 함수와 함께 ISBLANK 함수 (셀이 비어 있으면 TRUE를 반환 함)를 사용하는 것입니다.

=IF(A1=1, IF(AND(ISBLANK(B1), ISBLANK(C1)), "", IF(B1>C1, B1, C1)), "")

다음과 같이 Excel에서 텍스트가 포함 된 것처럼 B1과 C1을 평가하도록 할 수도 있습니다.

=IF(A1=1, IF(B1&C1="", "", IF(B1>C1, B1, C1)), "")

이 공식은 B1 또는 C1에 단일 공백이 포함되어 있으면 예상대로 작동하지 않으므로 TRIM 함수를 믹스에 추가 할 수 있습니다.

=IF(A1=1, IF(TRIM(B1&C1)="", "", IF(B1>C1, B1, C1)), "")

지금까지 설명한 공식에서 다음과 같이 MAX 함수를 사용하여 B1 또는 C1을 반환하는 IF 문을 변경할 수도 있습니다.

=IF(A1=1, IF(TRIM(B1&C1)="", "", MAX(B1:C1)), "")

그러나 이렇게하기로 결정한 경우 한 가지주의 사항이 있습니다. MAX 함수는 모든 텍스트 값을 0과 동일하게 간주합니다. 따라서 셀 B1에 “abc”가 포함되고 셀 C1에 1이 포함되어 있으면보다 큼 비교 연산자 (> )은 “abc”를 1보다 큰 것으로 간주하지만 MAX는 1을 “abc”보다 큰 것으로 간주합니다.

다시 돌아가서 Graham의 원래 수식 (두 개의 빈 셀을 확인하지 않는 수식)을 사용하고 수식이 포함 된 셀의 서식을 지정하는 방법도 있습니다. 다음과 같은 사용자 지정 형식을 만드십시오.

m/d/yyyy;;

형식 끝에 두 개의 세미콜론이 있습니다. 셀의 값이 음수이거나 0 인 경우 Excel에 아무것도 표시하지 않도록 지시합니다. 이 형식을 사용하면 1/0/1900 날짜가 표시되지 않습니다. 셀이 공백으로 표시됩니다.

물론 다른 _ExcelTips_에서 설명한 것처럼 워크 시트의 모든 0 값을 숨기도록 Excel을 수정할 수 있지만 다른 수식의 결과를 0으로 표시해야하는 경우 목적에 맞지 않을 수 있습니다.

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (10386)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.