导语:Power Query是无法识别合并单元格的,在一般情况下,也可以直接通过向下填充的方式补充好数据的,但是,有些特殊的情况,Power Query是真的无能为力!
最近在项目上碰到个Excel数据源带合并单元格的情况,直接把Power Query给“噎”住了:
这种情况下,如果直接将数据加载到Power Query,合并单元格会直接被“无视”,而将合并单元格中的值放在其第一个单元格中:
这时,会导致合并单元格及其下方非合并空白单元格无法区分!
而且,这个问题要单纯通过Power Query来处理——“无解”!为这个事情我还问了ChatGPT:
那如果不幸真碰到这种情况,怎么办呢?
只能借助VBA了——但是,不懂VBA怎么办?
不用担心,我也早把VBA差不多忘光光了,但是,ChatGPT可以继续为我们提供答案:
程序给出来了,赶紧试一下,可惜不对——它把下面的单元格都给填了:
怎么办呢?当然要纠正ChatGPT对问题的理解,于是继续对话,“只要填充原合并单元格的所有单元格,不要填充非合并单元格的单元格”,程序很快改好:
投入测试,搞定!真是太牛了!
附程序代码如下,以后直接复制过去用即可:
Sub UnmergeAndFill()
Dim ws As Worksheet
Dim rng As Range
Dim mergedCells As Range
Dim cell As Range
' 设置要操作的工作表
Set ws = ActiveSheet
' 循环遍历所有的合并单元格
For Each rng In ws.UsedRange
If rng.MergeCells Then
' 记录合并单元格范围
If mergedCells Is Nothing Then
Set mergedCells = rng
Else
Set mergedCells = Union(mergedCells, rng)
End If
End If
Next rng
' 取消所有合并单元格
If Not mergedCells Is Nothing Then
mergedCells.UnMerge
End If
' 填充数据
For Each cell In mergedCells
If cell.Value = "" Then
cell.Value = cell.Offset(-1, 0).Value
End If
Next cell
End Sub
经过VBA处理这么一下后,后续就可以用Power Query进行处理了。
回看这个简单的问题,细思极恐,未来AI会进化到什么程度?
本文分享自 Excel到PowerBI 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有