openpyxl合并单元格并写入数据_Excel数据报表美化的必备技能之相同数据的行合并单元格显示...

在我们日常工作中,要将从各种系统中导出的数据做成报表时,常常需要将一些相同数据的行合并,以使报表看起来更加美观。比如下面的数据:

ad9873a740a89216a9a02dda70eaeb89.png

调整后的形式:

48971be0bd7d2d8a97a2d789cdffcb63.png

下面我们介绍实现以上结果的2种方法。

一、数据透视表

数据透视表是Excel中十分强大的一个工具,可以轻松实现对以上需求的处理。

1.在【插入】下的【表格】选项卡中点击【数据透视表】,在弹出的【创建数据透视表】

窗口中选择号数据透视表的存放位置,点击确定。

4ba743947b2e7bc0e31aab94db916f93.png
b8d787c8bd635aa08a44bdc2fa5e0eee.png

2.在数据透视表字段中,将所有字段拖拽到【行】的位置。

8a4a0ca46a4e5e896038c60d1ceabdde.png

3.在【设计】下【布局】选项卡中将【报表布局】修改为【以表格形式显示(T)】。

948da6c682c5e557660fea2e4e702859.png

4.右键菜单中选择【数据透视表选项】,在【布局】中勾选【合并且居中排列带标签的单元格(M)】。

0e6d7ab92c3d0f5cec7712298e3fc172.png

5.将得到的结果复制,然后粘贴到其他位置,此时使用【选择性粘贴】中的【保留源格式】,删除表格中所有含有【汇总】的行。

特别提示:这里的汇总请最好在这里进行手动删除,不要在数据透视表中选择【不显示分类汇总】,否则将会导致部分单元格合并错误。

e5592c73bc6c8af95dd3d49dd8d71512.png

二、使用VBA代码实现

该方式需要有一定的编程基础,下面仅仅给出代码供参考,该方法能够实现更加灵活的功能。

4d6b8ea60c2b6f2dd5c3869e0ce3a7c4.png

文字版本:

Sub hebing()

'关闭屏幕刷新

Application.ScreenUpdating = False

'屏蔽确认提示框

Application.DisplayAlerts = False

'获取表格的最后一行的行号

lst = Range("a1000000").End(xlUp).Row

'循环所有行

For i = 2 To lst

'记录开始合并的行号

Start = i

'遍历判断内容是否相等

For j = i To lst

'如果相等,行号累加

If Cells(j, 1) = Cells(Start, 1) Then

i = i + 1

'不相等,跳出循环

Else

Exit For

End If

Next

'进行单元格合并操作

Range("a" & Start & ":a" & i - 1).Merge

Range("b" & Start & ":b" & i - 1).Merge

Range("c" & Start & ":c" & i - 1).Merge

i = i - 1

Next

'打开屏幕刷新

Application.ScreenUpdating = True

'开启确认提示框

Application.DisplayAlerts = True

End Sub

如果需要获取本教程的演示文件,请点击我名字后面的关注,然后私信【美化合并单元格】获取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值