前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这种合并单元格,PQ真的处理不了!又没学过VBA,怎么办!

这种合并单元格,PQ真的处理不了!又没学过VBA,怎么办!

作者头像
大海Power
发布2024-03-25 09:45:01
1560
发布2024-03-25 09:45:01
举报

导语:Power Query是无法识别合并单元格的,在一般情况下,也可以直接通过向下填充的方式补充好数据的,但是,有些特殊的情况,Power Query是真的无能为力!

最近在项目上碰到个Excel数据源带合并单元格的情况,直接把Power Query给“噎”住了:

这种情况下,如果直接将数据加载到Power Query,合并单元格会直接被“无视”,而将合并单元格中的值放在其第一个单元格中:

这时,会导致合并单元格及其下方非合并空白单元格无法区分!

而且,这个问题要单纯通过Power Query来处理——“无解”!为这个事情我还问了ChatGPT:

那如果不幸真碰到这种情况,怎么办呢?

只能借助VBA了——但是,不懂VBA怎么办?

不用担心,我也早把VBA差不多忘光光了,但是,ChatGPT可以继续为我们提供答案:

程序给出来了,赶紧试一下,可惜不对——它把下面的单元格都给填了:

怎么办呢?当然要纠正ChatGPT对问题的理解,于是继续对话,“只要填充原合并单元格的所有单元格,不要填充非合并单元格的单元格”,程序很快改好:

投入测试,搞定!真是太牛了!

附程序代码如下,以后直接复制过去用即可:

代码语言:javascript
复制
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会进化到什么程度?

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-03-24,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 Excel到PowerBI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
腾讯云服务器利旧
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com