如何计算Excel工作表中的数据行?

时间:2011-07-28 23:39:47

标签: excel vba excel-vba excel-formula

我试图计算电子表格中的行数,这些行在几列中至少包含一个非空值:即

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

该公式将等于3,因为第1,2和1行是3在至少一列中具有文本值。同样,如果第1行在每列(A,B和& C)中都有文本值,则会将其计为1。

6 个答案:

答案 0 :(得分:16)

使用公式,您可以做的是:

  • 在新列中(比如col D - cell D2),添加=COUNTA(A2:C2)
  • 将此公式拖到数据末尾(比如我们示例中的单元格D4
  • 添加最后一个公式来总结(例如在单元格D5中):=SUM(D2:D4)

答案 1 :(得分:2)

如果你想要一个简单的一个衬垫,它将为你完成所有(假设没有任何价值,你的意思是一个空白单元格):

=(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))。

然后公式计算相同范围内的空白值(或第二个示例中的0)。

最后,公式从总行数中减去没有值的单元格总数。这将为您留下每行中包含值

的单元格数

答案 2 :(得分:1)

如果你不介意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那么我知道某个单元格中有某个值有一些值。

答案 3 :(得分:0)

尝试这种情况:

数组= A1:C7A1-A3有值,B2-B6有值,C1C3C6都有值。

要计算行数,请添加列D(您可以在设置公式后隐藏它)和D1放置公式=If(Sum(A1:C1)>0,1,0)。将公式从D1复制到D7(对于其他搜索不精通文字的人,总和公式中的数字将更改为您所在的行,这很好)。

现在在C8中制作汇总公式,将D列相加,答案应为6。出于视觉上的目的,隐藏列D

答案 4 :(得分:0)

您应该在Excel中使用sumif函数:

=SUMIF(A5:C10;"Text_to_find";C5:C10)

这个函数的范围像这个方形A5:C10然后你有一些文本找到这个文本可以在A或B然后它将添加从C行的数字。

答案 5 :(得分:0)

这是我最终提出的,效果很好!

{=SUM(IF((ISTEXT('Worksheet Name!A:A))+(ISTEXT('CCSA Associates'!E:E)),1,0))-1}

不要忘记,因为它是一个数组,在没有“{}”的情况下键入上面的公式,并且按CTRL + SHIFT + ENTER而不是只显示“{}”的ENTER,并且可以正确输入