如何统计一个值的个数?
How to count the number of a value?
我正在连续处理 956 个值。我在获取每个值中的行距离时遇到问题,因为它们太多了。有没有办法通过按钮使用 Excel-VBA 来实现这一点?
例如:
这里显示的是计算一行距离的次数。
创建一个 user-defined function in a module,代码如下:
Option Explicit
Public Function Distance(matrix As Range, value As Long, rowCount As Long)
Dim cell As Range
Dim lastRow As Long
Dim result As Long
lastRow = 1
For Each cell In matrix
If cell.value = value Then
If cell.row - lastRow + 1 = rowCount Then result = result + 1
lastRow = cell.row
End If
Next
Distance = result
End Function
这就是您需要的全部代码。现在在 Sheet 中将此公式放入单元格 I5
,即结果左上角的单元格 table:
=Distance($A:$F, $H5, I)
根据左侧源 table 中的行数,您可能需要将该公式中的 11
调整为更大的数字,因此整个 table在那里被引用。
然后将此公式复制到其余输出 table:水平 drag/copy,然后 select 该行,然后 drag/copy 向下。
table 也会填充很多零。要摆脱这些,请使用 cell formatting。使用此自定义格式:
0;-0;
这是结果(忽略你在公式中看到的分号;这些与我的区域设置有关):
不需要按钮。结果像任何其他标准公式一样更新。
请注意,您可以根据需要使用其他名称命名您的函数,但请确保对 sheet.
中的公式进行相同的更改
我正在连续处理 956 个值。我在获取每个值中的行距离时遇到问题,因为它们太多了。有没有办法通过按钮使用 Excel-VBA 来实现这一点?
例如: 这里显示的是计算一行距离的次数。
创建一个 user-defined function in a module,代码如下:
Option Explicit
Public Function Distance(matrix As Range, value As Long, rowCount As Long)
Dim cell As Range
Dim lastRow As Long
Dim result As Long
lastRow = 1
For Each cell In matrix
If cell.value = value Then
If cell.row - lastRow + 1 = rowCount Then result = result + 1
lastRow = cell.row
End If
Next
Distance = result
End Function
这就是您需要的全部代码。现在在 Sheet 中将此公式放入单元格 I5
,即结果左上角的单元格 table:
=Distance($A:$F, $H5, I)
根据左侧源 table 中的行数,您可能需要将该公式中的 11
调整为更大的数字,因此整个 table在那里被引用。
然后将此公式复制到其余输出 table:水平 drag/copy,然后 select 该行,然后 drag/copy 向下。
table 也会填充很多零。要摆脱这些,请使用 cell formatting。使用此自定义格式:
0;-0;
这是结果(忽略你在公式中看到的分号;这些与我的区域设置有关):
不需要按钮。结果像任何其他标准公式一样更新。
请注意,您可以根据需要使用其他名称命名您的函数,但请确保对 sheet.
中的公式进行相同的更改