过滤另一个单元格时如何查看合并单元格的文本?

时间:2012-08-22 20:03:30

标签: excel excel-2007 openoffice.org office-2007 openoffice-calc

这两个列看起来像这张图片。

当我只想显示包含字母'b'的单元格时,我再也看不到文字“Title1”和“Title2”,这通常在B栏中可见。

我猜虽然列B中的单元格已合并,但文本仍然分别绑定到A3,分别为A7。

那么我怎样才能同时过滤可见内容并保留合并文本?简单来说,我想用字母'b'过滤内容,我仍然希望在B栏中看到文字“title 1/2”。

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)

然后你需要自动填充它。(这个函数似乎有点冗长,但我只是在网上得到它 - 可能有一种更简单的方法 - 但是它找到了范围内的最后一个非空单元格。)

Unmerge Cells Solution

我认为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))

您只需要自动填充该公式:

OpenOffice Compatible Solution

答案 1 :(得分:0)

你的主要问题似乎是一个&#34;空行&#34;您在过滤器字段后留下的内容。

删除它,它会正常工作。