您标记了 excel,所以这里是 excel 中的解决方案:
您需要单击包含合并单元格的列并取消合并所有单元格。
然后你需要把这个公式放在你的列表顶部,然后用 ctrl+shift+enter 输入(这将作为一个数组公式输入):
=OFFSET(C3,MAX(IF(NOT(ISBLANK(C$3:C3)),ROW(C$3:C3),0))-ROW(C3),0)
然后你需要自动填充它。(这个函数看起来有点冗长,但我刚上网 - 可能有一种更简单的方法来做到这一点 - 但它会找到一个范围内的最后一个非空白单元格)。
我认为 openoffice 具有类似的功能,因此您应该可以在 openoffice 中执行相同或类似的操作。
或者,如果您使用的是 excel,您可以单击要取消合并的列并运行此宏:
Sub UnMergeSelectedColumn()
Dim C As Range, CC As Range
Dim MA As Range, RepeatVal As Variant
For Each C In Range(ActiveCell, Cells(Rows.Count, ActiveCell.Column).End(xlUp))
If C.MergeCells = True Then
Set MA = C.MergeArea
If RepeatVal = "" Then RepeatVal = C.Value
MA.MergeCells = False
For Each CC In MA
CC.Value = RepeatVal
Next
End If
RepeatVal = ""
Next
End Sub
祝你好运。
编辑:
我找到了一个可以在 excel 和 openoffice 中使用的非 VBA 解决方案,并且不需要要求您将其作为数组公式输入(使用 ctrl+shift+enter):
=INDEX(B:B,ROUND(SUMPRODUCT(MAX((B$1:B1<>"")*(ROW(B$1:B1)))),0),1)
在开放式办公室我想你想这样进入:
=INDEX(B:B;ROUND(SUMPRODUCT(MAX((B$1:B2<>"")*(ROW(B$1:B2)))),0),1)
或者可能是这样的:
=INDEX(B:B;ROUND(SUMPRODUCT(MAX((B$1:B2<>"")*(ROW(B$1:B2)))),0))
您只需要自动填充该公式即可: