スプレッドシートで、いくつかの列にわたって少なくとも1つの非空白値を含む行の数を数えようとしています。
row 1 has a text value in column A
row 2 has a text value in column B
row 3 has a text value in column C
row 4 has no values in A, B or C
行1、2、および3には少なくとも1つの列にテキスト値があるため、式は3になります。同様に、行1の各列にテキスト値(A、B、C)がある場合、これは1としてカウントされます。
数式を使用すると、次のことができます。
D2
_など)に=COUNTA(A2:C2)
を追加しますD4
_と言います)D5
_):=SUM(D2:D4)
あなたのためにそれをすべて行うシンプルなワンライナーが必要な場合(値がないと仮定すると、空白のセルを意味します):
_=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, "")
_
値がない場合、セルに0が含まれていることを意味します
_=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, 0)
_
数式は、最初に列A、B、およびCにあるすべての行を合計することによって機能します(さらに行をカウントする必要がある場合は、範囲内の列を増やすだけです。例:ROWS(A:A) + ROWS(B:B) + ROWS(C:C) + ROWS(D:D) + ... + ROWS(Z:Z)
)。
次に、同じ範囲内の空白の値(または2番目の例では0)の値の数を計算します。
最後に、式は、行の総数から値のないセルの総数を引きます。これにより、値を含む各行のセルの数が残ります
VBAを気にしないのであれば、ここでそれを行う関数があります。あなたの電話は次のようになります:
=CountRows(1:10)
Function CountRows(ByVal range As range) As Long
Application.ScreenUpdating = False
Dim row As range
Dim count As Long
For Each row In range.Rows
If (Application.WorksheetFunction.CountBlank(row)) - 256 <> 0 Then
count = count + 1
End If
Next
CountRows = count
Application.ScreenUpdating = True
End Function
仕組み:256行の制限があるという事実を利用しています。ワークシートの数式CountBlankは、行内の空白のセルの数を示します。行に値のあるセルがない場合、それは256になります。したがって、256だけマイナスし、0でない場合、値のあるセルがどこかにあることがわかります。
このシナリオを試してください:
配列= _A1:C7
_。 _A1-A3
_には値があり、_B2-B6
_には値があり、_C1
_、_C3
_および_C6
_には値があります。
行数のカウントを取得するには、列D
(式の設定後に非表示にできます)を追加し、_D1
_ put formula =If(Sum(A1:C1)>0,1,0)
を追加します。数式を_D1
_から_D7
_にコピーします(Excelの知識がない人を検索する場合、合計数式の数値は現在の行に変更されますが、これで問題ありません)。
ここで_C8
_でD
列を合計する合計式を作成すると、答えは_6
_になります。視覚的に快適にするために、列D
を非表示にします。
これは私がついに思いついたものであり、素晴らしい作品です!
{=SUM(IF((ISTEXT('Worksheet Name!A:A))+(ISTEXT('CCSA Associates'!E:E)),1,0))-1}
「{}」なしで上記の式を入力する配列であり、「{}」を表示して適切に入力するために、単にEnterの代わりにCTRL + SHIFT + ENTERする配列であるため、忘れないでください。
Excelでsumif関数を使用する必要があります。
=SUMIF(A5:C10;"Text_to_find";C5:C10)
この関数は、この正方形A5:C10のような範囲を取り、このテキストがAまたはBにあることを確認するためのテキストがあれば、C行から数値を追加します。