盐水冲茶的个人小站 +

Excel合并功能记录

组里经常有很多杂事情,使用Excel做一些数据统计,而且通常是比较复杂的数据加工处理和统计。
数千行的数据进行筛选、去重、统计或者其他更复杂的操作,假如依靠手动,无论是准确性还是花费的时间都划不着。
Excel中菜单的功能和内置函数可以处理大多数的操作。

中文名 身高
小明 180
晓明 160
小红 170
小白 171
小黑 176
小黄 172
小绿 175

对上述数据进行列合并,使用公式”=A2&B2”

但是有些复杂的就比较难以胜任。
比方说,进行复杂的数据合并。

中文名 英文名 爱好
小明 xiaoming 吃饭
晓明 xiaoming 160
小红 xiaohong 吃饭
小红 xiaohong 看书
小白 xiaobai 吃饭
小白 xiaobai 写代码
小黑 xiaohei 吃饭
小黑 xiaohei 看美女
小黄 xiaohuang 吃饭
小黄 xiaohuang 喝水
小绿 xiaolv 吃饭
小绿 xiaoming 睡觉

对于中文名和英文名都相等的行,对爱好进行合并。
需要对数据进行排序的预处理,使符合合并条件的行相邻在一起。然后执行如下VBA代码。

Sub MergeCell()
	Dim i
	For i = 1 To UsedRange.Rows.Count
		If Cells(i, 1) = "" Then
			Exit For
		End If
		If LCase(Cells(i, 1)) = LCase(Cells(i + 1, 1)) And LCase(Cells(i, 2)) = LCase(Cells(i + 1, 2)) Then
			Debug.Print Cells(i, 2).Text + Cells(i, 3).Text + Cells(i, 7).Text
			Cells(i + 1, 3).Value2 = Cells(i + 1, 3).Value2 + "," + Cells(i, 3).Value2
			Rows(i).Delete
			i = i - 1
		End If
	Next
End Sub

昨天晚上做了个类似的功能,但是数据量有8000多行,所以记录一下自己的VBA代码

Blog

Dump

Project