빈 값이 아닌 행 수


128

Google 스프레드 시트에서 : 값이있는 특정 영역의 행을 어떻게 계산합니까? 이것에 대한 모든 힌트는 지금까지 비어있는 내용 (공식 포함)이 아닌 행을 계산하는 수식으로 이어지지 만

=IF(1=2;"";"")  // Shows an empty cell

마찬가지로 계산됩니다.

이 간단한 작업에 대한 해결책은 무엇입니까?


6
CountA가 당신을 위해 일하지 않습니까? : 또한이 SO 스레드를 참조 stackoverflow.com/questions/12519073/...
Ozair Kafray


답변:


-12

"CountBlank"함수를 사용하여 참조 된 셀이 비어 있는지 판별하는 다른 열을 작성하십시오. 그런 다음 새 "CountBlank"열에서 작성된 값에 count를 사용하십시오.


3
나는 이것에 대한 다른 해결책이 없다는 명확한 진술로 이것을 고려합니다. 대단히 감사합니다.
Robbit

다른 열을 추가 해야하는 경우 거의 항상 concatinate / split / join 등을 포함하는 것과 같은 추가 수식을 사용하여 해결할 수 있습니다. 해결하면 다시 돌아올 수 있습니다.
consideRatio

예를 들어, 다음 줄은 많은 문제를 해결할 수있는 2d 범위의 셀에서 하나의 행을 만듭니다. = split (ArrayFormula (concatenate (C3 : O4 & ";")), ";") --- -문제를 해결하기 위해 계속 노력하고 있습니다
고려 :

별도의 열에 의존하지 않고 목표를 해결하는 답변을 게시했습니다
consideRatio

203

방금 사용 =COUNTIF(Range, "<>")했으며 비어 있지 않은 셀을 계산했습니다.


14
불행하게도,이 공식은 또한 빈 결과의 공식으로 셀을 계산합니다.
Dávid Veszelovszki

23
@ DávidVeszelovszki와 같은 문제가있었습니다 [수식 계산]. 내가 해결할=COUNTIF(Range,"?*")
shawnrad

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 당신은 범위의 세포를 세고 있습니까?
AnnanFay 2016 년

124
=counta(range) 
  • counta: " 의 개수를 반환 합니다. 데이터 집합 "

    참고 : CountA고려 "" . 비어있는 셀만 셀에서 삭제를 누르면 셀이 계산되지 않습니다.

    Google 지원 : https://support.google.com/docs/answer/3093991

  • countblank: " 수를 반환합니다 주어진 범위 셀 "

    참고 : CountBlank빈 셀 (셀을 비우"" 려면 Delete 키를 누름)과 비어있는 반환 수식이있는 셀을 모두 고려합니다 . 셀로 .

    Google 지원 : https://support.google.com/docs/answer/3093403

결과가되는 수식이 포함 된 범위가있는 경우 ""다음 에서 수식을 수정할 수 있습니다.

=counta(range)

에:

=Counta(range) - Countblank(range)

편집 : 함수는 countblank아닙니다 countblanks. 후자는 오류를 발생시킵니다.


5
불행히도 처녀 공백과 계산 된 공백이 모두 포함 된 범위에서는 작동하지 않습니다. (COUNTA의 값에서 계산되지 않은 처녀 공백을 뺍니다.)
Dávid Veszelovszki

3
스위트 다운 보트 덕분에 OP는 공란이있는 이유는 = IF (1 = 2; ""; "")와 같은 수식 때문이라고 구체적으로 언급했습니다. "공식이 포함 된 범위가있는 경우 ""... "결과
Delta_zulu

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 당신은 범위의 세포를 세고 있습니까?
AnnanFay 2016 년

38

내가 지금까지 최고의 솔루션이라고 생각하는 것은 다음과 같습니다.

=CountIf(ArrayFormula(range<>""),TRUE)

간단한 3 단계를 수행하는 이유는 다음과 같습니다.

1 단계 : 파이로 단순-열 추가

eniacAvenger답변=A1<>"" 은 빈 셀, 처녀 공백 또는 생성 된 공백을 직관적으로 생각하는 방법에 따라 정확한 진실 / 거짓 값에 도달 하는 것처럼 보이는 경우에 대해 걱정하지 않고 올바른 솔루션 을 제공합니다.

우리가이 데이터를 가지고 있고 다음에 비 공백 개수를 원한다고 상상해보십시오 B2:B6.

|   |      A      |   B   |    C    |
|---|-------------|-------|---------|
| 1 | Description | Value | B1<>""  |
| 2 | Text        | H     | TRUE    |
| 3 | Number      | 1     | TRUE    |
| 4 | IF -> ""    |       | FALSE   |
| 5 | IF -> Text  | h     | TRUE    |
| 6 | Blank       |       | FALSE   |

C 열에 의존 하면 다음과 같이 B의 값 수를 얻을 수 있습니다.

=COUNTIF(C2:C6,True)

2 단계 : FormulaArray추가 열을 동적으로 만드는 데 사용

그러나 consideRatio의 의견 은 유효한 의견 입니다. 추가 열이 필요한 경우 종종ArrayFormula 시트 공간을 차지하지 않고 메모리에 열을 만들 수 할 수 있습니다.

따라서 C를 동적으로 만들려면 다음과 같은 배열 수식을 사용할 수 있습니다.

=ArrayFormula(B2:B6<>"")

간단히 C2에 넣으면 한 번의 펜 스트로크로 수직 배열을 만듭니다.

|   |      A      |   B   |    C                     |
|---|-------------|-------|--------------------------|
| 1 | Description | Value | =ArrayFormula(B2:B6<>"") |
| 2 | Text        | H     | TRUE                     |
| 3 | Number      | 1     | TRUE                     |
| 4 | IF -> ""    |       | FALSE                    |
| 5 | IF -> Text  | h     | TRUE                     |
| 6 | Blank       |       | FALSE                    |

3 단계 : 동적 열의 값 계산

그러나 그 해결로 더 이상 값을 표시하기 위해 열이 더 이상 필요하지 않습니다.

ArrayFormula다음 범위로 해결됩니다 {True,True,False,True,False}..
CountIf모든 범위를 취하면이 경우 True 값의 수를 계산할 수 있습니다.

따라서 다음 과 같이 CountIf생성 된 값을 둘러 쌀 수 있습니다 ArrayFormula.

=CountIf(ArrayFormula(B2:B6<>""),TRUE)

추가 자료

이 스레드의 다른 솔루션은 지나치게 복잡 하거나이 테스트 시트에 열거 된 특정 사례에서 실패합니다.

Google 스프레드 시트-CountA 테스트-데모

CountA이상한 방식으로 작동 하는지 보려면 여기에서 내 대답을 참조 하십시오.


4
이 답변은 유일한 완전한 솔루션입니다. 생성 된 공백, 진정한 빈 셀 및 오류 (# N / A, #REF !, #VALUE 제외)는 텍스트 (공백 포함), 숫자 및 TRUE / FALSE 값을 가진 셀만 성공적으로 계산합니다. , #NAME?). 또한 값이없는 경우 0을 반환합니다.
spacepickle

2
나는 이것을 읽는 것이 약간 혼란스러워 우연히이 수식이 작동한다는 것을 발견했습니다 ... = CountIf (ArrayFormula (B2 : B6 <> ""), TRUE) ... 제발, 오해하지 마십시오. 가장 좋은 방법이며 더 많이지지해야합니다.
twindham

2
@twindham은이 답변의 블록을 만드는 측면에서 각 논리 구성 요소를 그대로 유지하고 재정렬 ArrayFormula(...)하여 순서대로 값 배열을 반환하는 것이 더 쉽다는 데 동의 CountIf했습니다. 답변과 스프레드 시트 데모를 업데이트했습니다. 둘 다 똑같은 일을 할 것이지만 청결은 선의 옆에 있습니다.
KyleMit

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 하나의 열에서 비어 있지 않은 셀을 세고 있습니까? 접근 방식이 여러 열에서 작동 할 수 있습니까?
AnnanFay

19

나를 위해, 답변 중 누구도 공식에 따라 비어있는 두 처녀 세포와 세포를 포함하는 범위를 위해 일하지 (예를 =IF(1=2;"";""))

나를 위해 그것을 해결 한 것은 이것입니다 :

=COUNTA(FILTER(range, range <> ""))


columnb에 ""값을 반환하는 형식이 포함 된 경우 훌륭한 솔루션입니다! 고마워
user1561325

불행히도, Filter()요소를 찾지 못하면 마치 요소 #N/ACOUNTA()취급되는 요소를 반환하므로 카운트가 0이어야하더라도 항상 1을 반환합니다. Google 스프레드 시트의 예
KyleMit

7
@KyleMit 범위에 상수 값을 추가하고 다음을 사용하여 카운트에서 1을 빼서 제로 카운트 문제를 제거 할 수 있습니다.=COUNTA(filter({1;range},{1;range}<>"")) - 1
spacepickle

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 범위의 셀을 세고 있습니다. 이 코드는 여러 행에 적용하려고하면 중단됩니다.
AnnanFay

9

Yogi Anand가 검색 한 솔루션을 사용하여 해결했습니다 : https://productforums.google.com/d/msg/docs/3qsR2m-1Xx8/sSU6Z6NYLOcJ

아래 예는 A3 : C 범위의 비어 있지 않은 행 수를 계산합니다. 관심있는 범위로 수식의 두 범위를 모두 업데이트해야합니다.

=ArrayFormula(SUM(SIGN(MMULT(LEN(A3:C), TRANSPOSE(SIGN(COLUMN(A3:C)))))))

또한 순환 종속성을 피하십시오. 예를 들어 A : C에서 비어 있지 않은 행 수를 계산 하고이 수식을 A 또는 C 열에 배치하면 발생합니다.


1
훨씬 깨끗한 솔루션을 찾았으며 새로운 답변으로 게시했습니다.
Dávid Veszelovszki

1
빈 셀이 아닌 행이있는 행 수를 계산하고 범위의 빈 셀이 아닌 셀 수를 계산하지 않는 질문에 대답하는 유일한 솔루션입니다.
Kpym

7

그것은 나를 위해 일합니다 :

=SUMPRODUCT(NOT(ISBLANK(F2:F)))

모든 비어 있지 않은 셀의 개수 F2 받는 열의 단부


5

범위가 주어지면 다음과 같이 A:A제안합니다.

=COUNTA(A:A)-(COUNTIF(A:A,"*")-COUNTIF(A:A,"?*"))

문제는 COUNTA가 길이가 0 인 문자열의 셀 수를 정확하게 계산하는 것입니다 "" 입니다.

해결책은 정확히이 셀의 수를 찾는 것입니다. 이것은 모든 텍스트 셀을 찾고 하나 이상의 문자로 모든 텍스트 셀을 빼서 찾을 수 있습니다

  • COUNTA (A : A) : ""빈 셀을 포함 하지만 제외하고 값이 있는 셀
  • COUNTIF (A : A, "*") : 텍스트를 인식하며 셀을 포함 ""하지만 실제로는 제외
  • COUNTIF (A : A, "? *") : 하나 이상의 문자가있는 텍스트로 인식되는 셀

즉, 값 COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")은 텍스트 셀 수에서 하나 이상의 문자가있는 텍스트 셀 수를 뺀 값 이어야합니다. 즉, 정확히 포함하는 셀 수""


@KyleMit 데모 시트를 사용하여 오류가있는 셀을 포함하기 때문에이 수식은 여전히 ​​셀 수를
초과

길이가 0 인 문자열이 포함 된 셀과 전혀 포함되지 않은 셀 사이에는 차이가 있습니까? 이것이 사람들이 컴퓨터를 불신하게 만드는 이유입니다. . . 왜 우리가 좋은 것을 가질 수 없는지 아십니까?
Cheeso

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 당신은 범위의 세포를 세고 있습니까?
AnnanFay

5

나를 위해 더 간단한 솔루션 :

=COUNTIFS(A:A;"<>"&"")

비어 있지 않은 숫자, 문자열, 날짜 등을 모두 계산합니다.


5
= COUNTIF (A : A, "<>")와 같은 형식으로 단순화 될 수 있음
Tom

문제는 범위에서 행을 계산하는 방법을 묻는 것입니다. 당신은 범위의 세포를 세고 있습니까?
AnnanFay 2016 년

3

내가 볼 수있는 한, 여기의 대부분의 솔루션은 비어 있지 않은 셀의 수를 계산하지만 비어 있지 않은 셀이있는 행 수는 계산하지 않습니다.

범위 B3:E29에 대한 한 가지 가능한 해결책 은 예를 들어

=SUM(ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1)))

여기 ArrayFormula(IF(B3:B29&C3:C29&D3:D29&E3:E29="";0;1))에서 0(행이 비어있는 경우) 및 1(else) 의 열을 반환합니다 .

또 하나는 consideRatio 's answer에서 제공 됩니다.


2

다음과 같은 Apps Script (도구> 스크립트 편집기)를 사용하여 사용자 정의 함수를 정의 할 수 있습니다 numNonEmptyRows.

function numNonEmptyRows(range) {
  Logger.log("inside");
  Logger.log(range);
  if (range && range.constructor === Array) {
    return range.map(function(a){return a.join('')}).filter(Boolean).length
  }
  else {
    return range ? 1 : 0;
  }
}

그런 다음이 같은 셀에서 그것을 사용 =numNonEmptyRows(A23:C25)하여 범위의 비어 있지 않은 행 수를 계산하십시오 A23:C25.



1

이런 종류의 일을하는 매우 유연한 방법은 ARRAYFORMULA를 사용하는 것입니다.

예를 들어 비어 있지 않은 문자열 (텍스트 필드)을 세고 싶다고 상상해보십시오.

=ARRAYFORMULA(SUM(IF(Len(B3:B14)>0, 1, 0)))

여기서 발생하는 것은 "ArrayFormula"를 통해 일련의 값을 조작 할 수 있다는 것입니다. SUM 함수를 사용하면 세트의 값을 합산하기 위해 "ArrayFormula"를 나타냅니다. "If"절은 "비어 있음"또는 "비어 있지 않음"을 검사하는 데만 사용되며, 비어 있지 않은 경우 1이고 그렇지 않은 경우 0입니다. "길이"는 다른 텍스트 필드의 길이를 반환하며, 확인하려는 세트 (범위)를 정의 할 수 있습니다. 마지막으로 "ArrayFormula"는 "len"이 0보다 큰 값을 반환하는 set (range) 내의 각 필드에 대해 1을 합산합니다.

다른 조건을 확인하려면 IF 절의 첫 번째 인수 만 수정하십시오.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.