首页 > 解决方案 > Excel - 动态处理合并的单元格

问题描述

下午好,希望你们一切都好。

我们的数据仓库正在以一种奇怪的格式导出数据,使用合并的单元格,我们必须每周清理这些单元格,以便我们可以使用它。

样本数据

在屏幕截图中,您可以找到依赖于合并单元格的设置,而不是复制合作伙伴、日期、品牌和区域代码。

我创建了一个公式,指定如果上面的行是空白的,那么它会在顶部找到下一个有文本的单元格并复制它,但这有点不可靠,它是这样的:

=IF([@Date]="",B23,[@Date])

=IF([@Date]="",B24,[@Date])

既然B23不是空白,那么它就假定它的值。然后,下一个,既然B24是空白,那就复制B23. 然后,由于B25是空白,它复制B24已经具有日期值的 。

它有效,但似乎必须有更好的方法来动态实现这一点,对于日期和其他合并列,它们与合并单元格具有相同的模式。我探索了一些 Power Query 解决方案,但没有产生任何结果。请注意,使用 Power Query 导入此数据时,合并的单元格只是作为“null”出现。

标签: excelexcel-formulapowerquery

解决方案


一个基本的 VBA 方法:

Sub UnMerge()

    Dim c As Range, m As Range, v

    Application.ScreenUpdating = False
    For Each c In ActiveSheet.UsedRange.Cells
        If c.MergeCells Then
            v = c.Value
            Set m = c.MergeArea
            c.UnMerge
            m.Value = v
        End If
    Next c
    Application.ScreenUpdating = True

End Sub

推荐阅读