Vba 如何计算Excel工作表中包含数据的行数?
我试图计算电子表格中的行数,其中至少有几列包含一个非空值:即Vba 如何计算Excel工作表中包含数据的行数?,vba,excel,excel-formula,Vba,Excel,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和3至少有一列中有文本值。类似地,如果第1行的每一列(a、B和C)中都有一个文本值,则该值将计为1。如果您不介意VBA,这里有一个函数
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和3至少有一列中有文本值。类似地,如果第1行的每一列(a、B和C)中都有一个文本值,则该值将计为1。如果您不介意VBA,这里有一个函数可以为您完成此操作。您的电话可能是:
=CountRows(1:10)
函数CountRows(ByVal范围作为范围)的长度
Application.ScreenUpdating=False
暗行作为范围
不算长
对于范围中的每一行。行
如果(Application.WorksheetFunction.CountBlank(row))-256 0,则
计数=计数+1
如果结束
下一个
CountRows=计数
Application.ScreenUpdating=True
端函数
工作原理:我利用了256行限制这一事实。工作表公式CountBlank将告诉您一行中有多少单元格为空。如果该行没有带值的单元格,则该行为256。所以我只要减去256,如果它不是0,那么我知道某个地方有一个单元格有一些值。对于公式,你可以做的是:
- 在一个新列中(比如cold-cell
),添加D2
=COUNTA(A2:C2)
- 拖动此公式直到数据结束(在我们的示例中,假设单元格
)D4
- 添加最后一个公式求和(例如在单元格
):D5
=sum(D2:D4)
A1:C7
<代码>A1-A3有值,B2-B6
有值,C1
,C3
和C6
有值
要获得行数计数,请添加一列D
(设置公式后可以将其隐藏),并在D1
中放入公式=If(求和(A1:C1)>0,1,0)
。将公式从D1
复制到D7
(对于不懂excel的其他搜索者,总和公式中的数字将更改为您所在的行,这是可以的)
现在在
C8
中,建立一个求和公式,将D
列相加,答案应该是6
。为了便于视觉效果,隐藏列D
您应该在Excel中使用sumif函数:
=SUMIF(A5:C10;“要查找的文本”C5:C10)
这个函数的取值范围是A5:C10,然后你有一些文本可以找到,这个文本可以是a或B,然后它将从C行中添加数字 这就是我最后想到的,非常有效
{=SUM(如果((ISTEXT('sheet Name!A:A))+(ISTEXT('CCSA Associates'!E:E)),1,0))-1}
不要忘记,因为它是一个数组,可以键入上面的公式而不带“{}”,并且可以按住CTRL+SHIFT+ENTER键,而不只是按ENTER键,这样“{}”就会出现并正确输入。如果您想要一个简单的单行程序来完成所有操作(假设没有值,您指的是空白单元格): 如果没有值,则表示单元格包含0
=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, 0)
该公式首先将列A、B和C中的所有行相加(如果需要计算更多行,只需增加范围内的列。例如,行(A:A)+行(B:B)+行(C:C)+行(D:D)+…+行(Z:Z)
)
然后,公式计算同一范围内空白值(或第二个示例中为0)的数量
最后,公式从总行数中减去没有值的单元格总数。这就给您留下了每行中包含值的单元格数,这里的关键函数是COUNTA(注意末尾的a),它对包含数据的单元格进行计数。对于不知道行数或希望行数可变的任何人,只需键入整列:
=COUNTA(a:a)
,假设列只包含要计数的单元格,而不包含其他内容。这仅在文本匹配时有效。如果此人只是在处理独一无二的电子邮件,或是姓名,该怎么办?或者只是试图找到有无非统一数据的单元数?
=(ROWS(A:A) + ROWS(B:B) + ROWS(C:C)) - COUNTIF(A:C, 0)