あなたは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))
その数式を自動入力する必要があります。