两列在这张图片上看起来像。
当我只想显示包含字母“b”的单元格时,我无法再看到通常在 B 列中可见的文本“Title1”和“Title2”。
我猜虽然B列中的单元格被合并了,但文本仍然绑定到A3,分别绑定到A7。
那么我怎样才能同时过滤可见内容并保留合并的文本呢?简而言之,我想按字母“b”过滤内容,但我仍然想在 B 列中看到文本“title 1/2”。
两列在这张图片上看起来像。
当我只想显示包含字母“b”的单元格时,我无法再看到通常在 B 列中可见的文本“Title1”和“Title2”。
我猜虽然B列中的单元格被合并了,但文本仍然绑定到A3,分别绑定到A7。
那么我怎样才能同时过滤可见内容并保留合并的文本呢?简而言之,我想按字母“b”过滤内容,但我仍然想在 B 列中看到文本“title 1/2”。
您标记了 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
祝你好运。
编辑:
我找到了一个非 VBA 解决方案,它可以在 excel 和 openoffice 中使用,并且不需要您将其作为数组公式输入(使用 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))
您只需要自动填充该公式即可:
您的主要问题似乎是您在过滤器字段之后留下的一个“空白行”。
删除它,它会正常工作。