这两个列看起来像这张图片。
当我只想显示包含字母'b'的单元格时,我再也看不到文字“Title1”和“Title2”,这通常在B栏中可见。
我猜虽然列B中的单元格已合并,但文本仍然分别绑定到A3,分别为A7。
那么我怎样才能同时过滤可见内容并保留合并文本?简单来说,我想用字母'b'过滤内容,我仍然希望在B栏中看到文字“title 1/2”。
答案 0 :(得分:1)
你标记了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))
您只需要自动填充该公式:
答案 1 :(得分:0)
你的主要问题似乎是一个&#34;空行&#34;您在过滤器字段后留下的内容。
删除它,它会正常工作。