2014-09-03 3 views
1

셀에 '잘못된'값이 없는지 확인하는 수식이 있습니다. 셀이 "0"의 값이없는 경우null이 아니거나 유효하지 않거나 0이 아닌 계산 셀의 Excel 수식

=COUNTIF(A2:A200,"<>0") 

이 유일한 검사 : 그러나, 그것은 또한 0이 아닌 빈 셀, 그리고 거기에 아무것도 세포를 계산한다. 이 같은 값으로 빈 셀 또는 셀을 계산하지 않도록 내가 무엇을 추가 할 수 있습니다 내가 원하는 모든 0 동일하지 않습니다 그들에 숫자를 얼마나 많은 세포를 계산하는 등

####### 
VALUE? 
r 

, 또는 오류.

+0

의 때문에 부정 날짜. 수식은 디스플레이가 아닌 셀의 기본 값을 조사합니다. –

답변

2

아래의 array formula은 0이 아닌 값과 null이 아닌 값을 모두 계산 한 다음 오류가있는 셀 수를 뺍니다. 당신은 7 개 유효하거나 잘못된 항목에 둥지까지 할 수

=COUNTIFS(A2:A200,"<>0", A2:A200,"<>"&"", A2:A200,"<>"&"NIL") - SUM(IF(ISERROR(A2:A200),1,"")) - SUM(IF(ISNA(A2:A200),1,"")) 
+0

COUNTIFS 함수가 FALSE를 반환 할 수 있는지 확신하지 못합니다. 수식을 직접 복사하여 복사 했습니까? – chishaku

+0

'&'의 목적은 무엇입니까? – Ben

+0

"<>"연산자를 널 문자열 ""과 연결합니다. 나는 "<>" ""이 유효하다고 생각하지 않습니다. – chishaku

0

:

당신은 Ctrl + Shift + Enter를 눌러 제대로이 공식을 실행하기 위해 입력해야합니다. 그 이상을 가져야 할 필요가있는 경우, "블랙리스트"에 대한 항목을 지정해야합니다.이 항목을 사용하면 발생으로 인해 유효하다고 생각하지 않는 항목이 발생할 때 추가 할 수 있습니다. 예 :

=IF(ISERR(VLOOKUP(A1,Sheet1!E:E,1,FALSE))=FALSE,1,0) 

여기서 "E"열은 유효하지 않은 것으로 간주되는 값 목록입니다. 이 값을 기준 및 합계 옆으로 드래그하십시오.

편집 : 나는 countifs에 대해 몰랐습니다. 그래서 당신은 당신의 취향에 따라 몇 가지 해결책을 가지고 있습니다.

1

이 수식 등을 숫자로만 <> 0을 제외한 여백, 에러 메시지를 카운트 할 수 있지만 그 디스플레이 ###### 세포를 배제하지 않을 것이다 (그러나 실제로 들을 포함)이 있으면 그 이유는 너무 좁은 열 또는 부정적인 날짜 또는 시간 값입니다. 당신이 정말로 기본 내용이 숫자가 0이 아닌 경우 #######을 표시 세포를 계산하지 않도록하려면

=SUMPRODUCT(--ISNUMBER(A2:A200))-COUNTIF(A2:A200,0) 

, 당신의 Text 속성에 따라 행동하는 UDF를 사용해야합니다 세포. 또한 해당 열을 좁히거나 넓히면 해당 수식을 업데이트하는 계산 이벤트가 트리거되지 않으므로 수식 결과가 올바른지 확인해야합니다.

그래서 Application.Volatile를 코드에 추가했지만 수식의 결과가 적어도 다음 계산 이벤트까지 확인되는 범위의 디스플레이와 일치하지 않는 상황이 발생할 수 있습니다 일어난다.

이 사용자 정의 함수 (UDF)를 입력하려면 alt-F11이 Visual Basic Editor를 엽니 다. 프로젝트가 프로젝트 탐색기 윈도우에서 강조 표시되어 있는지 확인하십시오. 그런 다음 상단 메뉴에서 삽입/모듈을 선택하고 아래에있는 코드를 붙여 넣습니다.

이 사용자 정의 함수 (UDF)의 일부 셀에

=CountNumbersNEZero(A2:A200) 

같은 수식을 입력 사용하십시오.I가 표시 열이 그 표시가있는 경우 수치 값을 표시하거나, 너무 작은 것에 의한 것인지 #######을 제외 할 수있는 공식이 판단하지

Option Explicit 
Function CountNumbersNEZero(rg As Range) As Long 
Application.Volatile 
    Dim C As Range 
    Dim L As Double 
For Each C In rg 
    If IsNumeric(C.Text) Then 
     If C.Text <> 0 Then L = L + 1 
    End If 
Next C 
CountNumbersNEZero = L 
End Function 
+0

와우 이것은 내 머리 위로 아주 많이지고 있습니다 ... 당신은 이것을 어디에서 구현합니까? – Ben

+0

음, SUMPRODUCT 수식은 숫자 수가 <> 0 일 때 열을 너무 작게 표시하거나 음수 시간이되면 ###### 표시를 처리 할 수없는 것을 제외하고 모든 것을 제외합니다 . 사용자 정의 함수 사용 방법에 대한 내 응답을 업데이트하겠습니다. –

관련 문제