首页 > 解决方案 > 如果它包含 Excel 中的填充单元格,则计算列

问题描述

这是一个简单的问题,但我无法在任何地方找到答案。

因此,假设我有 range A1:D20,在 A 列和 C 列中至少有一个值。因此,至少有一个填充单元格的列数为 2。

如何获得一个公式来计算一个范围内至少包含一个值的列数?我也想用标准来计算列,但目前这是次要的。

我有至少 35 列的大范围,所以更短的表达式会非常有帮助。

标签: excelcountreturn-value

解决方案


我很确定一个好的搜索会给你更多的结果,但试试下面:

=IF(COUNTA("A1:A20")>0,1,0)+IF(COUNTA("B1:B20")>0,1,0)+IF(COUNTA("C1:C20")>0,1,0)+IF(COUNTA("D1:D20")>0,1,0)

编辑

好吧,我想如果你想在没有任何辅助行的情况下使用 COUNTA 函数,那么一种平滑的方式可能是 UDF,可能像这样:

Function CountColumns(RNG As Range) As Long

Dim COL As Range
For Each COL In RNG.Columns
    If Application.WorksheetFunction.CountA(COL) > 0 Then CountColumns = CountColumns + 1
Next COL

End Function

推荐阅读