0

2 つの列は、このイメージのように見えます。

文字「b」を含むセルのみを表示したい場合、通常は列 B に表示されるテキスト「Title1」と「Title2」が表示されなくなります。

列 B のセルは結合されていますが、テキストはそれぞれ A3、A7 にバインドされていると思います。

では、表示されているコンテンツをフィルタリングし、結合されたテキストを保持するにはどうすればよいでしょうか? 簡単に言えば、文字「b」でコンテンツをフィルタリングしたいのですが、列 B に「タイトル 1/2」というテキストを表示したいのです。

4

2 に答える 2

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 

幸運を。

編集:

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))

その数式を自動入力する必要があります。

OpenOffice互換ソリューション

于 2012-08-22T22:07:15.027 に答える
0

あなたの主な問題は、フィルターフィールドの後に残した1つの「空白行」のようです。

それを削除すると、正常に動作します。

于 2012-09-05T16:21:56.453 に答える