Excel中如何统计含文本的相邻单元格对出现次数?
统计含文本单元格的相邻次数
公式法(适用于Excel)
假设你的数据区域是A1:D10,可以用以下公式统计所有横向(左右)和纵向(上下)的含文本相邻单元格对总数:
=SUMPRODUCT(--(LEN(TRIM(A1:C10))>0), --(LEN(TRIM(B1:D10))>0)) + SUMPRODUCT(--(LEN(TRIM(A1:D9))>0), --(LEN(TRIM(A2:D10))>0))
- 第一部分统计横向相邻的文本单元格对数量(同一行中,左右单元格都有文本的情况)
- 第二部分统计纵向相邻的文本单元格对数量(同一列中,上下单元格都有文本的情况)
TRIM去除单元格内空格,避免空白单元格被误判;LEN>0判断是否包含有效文本;--将布尔值转为可计算的1或0
如果数据区域不是A1:D10,对应调整公式里的区域范围即可。
VBA法(适用于Excel大区域或批量统计)
若数据区域较大,公式计算效率低,可使用VBA代码实现:
Sub CountAdjacentTextCells() Dim rng As Range Dim cell As Range Dim count As Integer Set rng = Application.InputBox("选择要统计的单元格区域", Type:=8) count = 0 ' 统计横向相邻(右侧单元格) For Each cell In rng If cell.Column < rng.Columns(rng.Columns.Count).Column Then If Len(Trim(cell.Value)) > 0 And Len(Trim(cell.Offset(0, 1).Value)) > 0 Then count = count + 1 End If End If Next cell ' 统计纵向相邻(下侧单元格) For Each cell In rng If cell.Row < rng.Rows(rng.Rows.Count).Row Then If Len(Trim(cell.Value)) > 0 And Len(Trim(cell.Offset(1, 0).Value)) > 0 Then count = count + 1 End If End If Next cell MsgBox "含文本的相邻单元格对总次数为:" & count End Sub
使用方法:
- 打开Excel,按
Alt+F11打开VBA编辑器 - 插入新模块,粘贴上述代码
- 运行宏,选择目标区域即可得到结果
内容的提问来源于stack exchange,提问作者Az pdg
相关产品推荐
相关产品推荐

