Google 스프레드 시트에서 : 값이있는 특정 영역의 행을 어떻게 계산합니까? 이것에 대한 모든 힌트는 지금까지 비어있는 내용 (공식 포함)이 아닌 행을 계산하는 수식으로 이어지지 만
=IF(1=2;"";"") // Shows an empty cell
마찬가지로 계산됩니다.
이 간단한 작업에 대한 해결책은 무엇입니까?
Google 스프레드 시트에서 : 값이있는 특정 영역의 행을 어떻게 계산합니까? 이것에 대한 모든 힌트는 지금까지 비어있는 내용 (공식 포함)이 아닌 행을 계산하는 수식으로 이어지지 만
=IF(1=2;"";"") // Shows an empty cell
마찬가지로 계산됩니다.
이 간단한 작업에 대한 해결책은 무엇입니까?
답변:
"CountBlank"함수를 사용하여 참조 된 셀이 비어 있는지 판별하는 다른 열을 작성하십시오. 그런 다음 새 "CountBlank"열에서 작성된 값에 count를 사용하십시오.
방금 사용 =COUNTIF(Range, "<>")
했으며 비어 있지 않은 셀을 계산했습니다.
=COUNTIF(Range,"?*")
=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
. 후자는 오류를 발생시킵니다.
=CountIf(ArrayFormula(range<>""),TRUE)
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)
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 |
그러나 그 해결로 더 이상 값을 표시하기 위해 열이 더 이상 필요하지 않습니다.
ArrayFormula
다음 범위로 해결됩니다 {True,True,False,True,False}
..
CountIf
모든 범위를 취하면이 경우 True 값의 수를 계산할 수 있습니다.
따라서 다음 과 같이 CountIf
생성 된 값을 둘러 쌀 수 있습니다 ArrayFormula
.
=CountIf(ArrayFormula(B2:B6<>""),TRUE)
이 스레드의 다른 솔루션은 지나치게 복잡 하거나이 테스트 시트에 열거 된 특정 사례에서 실패합니다.
왜 CountA
이상한 방식으로 작동 하는지 보려면 여기에서 내 대답을 참조 하십시오.
ArrayFormula(...)
하여 순서대로 값 배열을 반환하는 것이 더 쉽다는 데 동의 CountIf
했습니다. 답변과 스프레드 시트 데모를 업데이트했습니다. 둘 다 똑같은 일을 할 것이지만 청결은 선의 옆에 있습니다.
나를 위해, 답변 중 누구도 공식에 따라 비어있는 두 처녀 세포와 세포를 포함하는 범위를 위해 일하지 (예를 =IF(1=2;"";"")
)
나를 위해 그것을 해결 한 것은 이것입니다 :
=COUNTA(FILTER(range, range <> ""))
Filter()
요소를 찾지 못하면 마치 요소 #N/A
로 COUNTA()
취급되는 요소를 반환하므로 카운트가 0이어야하더라도 항상 1을 반환합니다. Google 스프레드 시트의 예
=COUNTA(filter({1;range},{1;range}<>"")) - 1
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 열에 배치하면 발생합니다.
범위가 주어지면 다음과 같이 A:A
제안합니다.
=COUNTA(A:A)-(COUNTIF(A:A,"*")-COUNTIF(A:A,"?*"))
문제는 COUNTA가 길이가 0 인 문자열의 셀 수를 정확하게 계산하는 것입니다 ""
입니다.
해결책은 정확히이 셀의 수를 찾는 것입니다. 이것은 모든 텍스트 셀을 찾고 하나 이상의 문자로 모든 텍스트 셀을 빼서 찾을 수 있습니다
""
빈 셀을 포함 하지만 제외하고 값이 있는 셀""
하지만 실제로는 제외즉, 값 COUNTIF(A:A,"*")-COUNTIF(A:A,"?*")
은 텍스트 셀 수에서 하나 이상의 문자가있는 텍스트 셀 수를 뺀 값 이어야합니다. 즉, 정확히 포함하는 셀 수""
나를 위해 더 간단한 솔루션 :
=COUNTIFS(A:A;"<>"&"")
비어 있지 않은 숫자, 문자열, 날짜 등을 모두 계산합니다.
내가 볼 수있는 한, 여기의 대부분의 솔루션은 비어 있지 않은 셀의 수를 계산하지만 비어 있지 않은 셀이있는 행 수는 계산하지 않습니다.
범위 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에서 제공 됩니다.
다음과 같은 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
.
Google 스프레드 시트에서 2 차원 범위 내에 비어 있지 않은 셀이 하나 이상 포함 된 행 수를 계산합니다 .
=ARRAYFORMULA(
SUM(
N(
MMULT(
N(A1:C5<>""),
TRANSPOSE(COLUMN(A1:C5)^0)
)
>0
)
)
)
여기서 A1 : C5는 비어 있지 않은 행을 확인하는 범위입니다.
이 수식은 EXCELXOR의 https://excelxor.com/2015/03/30/counting-rows-where-at-least-one-condition-is-met/ 기사에서 설명하며 다음 기사에서 설명합니다.
이런 종류의 일을하는 매우 유연한 방법은 ARRAYFORMULA를 사용하는 것입니다.
예를 들어 비어 있지 않은 문자열 (텍스트 필드)을 세고 싶다고 상상해보십시오.
=ARRAYFORMULA(SUM(IF(Len(B3:B14)>0, 1, 0)))
여기서 발생하는 것은 "ArrayFormula"를 통해 일련의 값을 조작 할 수 있다는 것입니다. SUM 함수를 사용하면 세트의 값을 합산하기 위해 "ArrayFormula"를 나타냅니다. "If"절은 "비어 있음"또는 "비어 있지 않음"을 검사하는 데만 사용되며, 비어 있지 않은 경우 1이고 그렇지 않은 경우 0입니다. "길이"는 다른 텍스트 필드의 길이를 반환하며, 확인하려는 세트 (범위)를 정의 할 수 있습니다. 마지막으로 "ArrayFormula"는 "len"이 0보다 큰 값을 반환하는 set (range) 내의 각 필드에 대해 1을 합산합니다.
다른 조건을 확인하려면 IF 절의 첫 번째 인수 만 수정하십시오.