大体でIT

-ちょっと使えるネタを紹介-

大体でIT

Excel VBAで、結合したセルを正しくフィルタする方法について、ご紹介します。「PasteSpecial」で「数式」を貼り付けるとできます。セル結合された表で、フィルタした値を確認したい場合に使えます。

はじめに

この記事では、結合したセルをフィルタする方法について、ご紹介します。

結合したセルはフィルタすると、「1行しか」フィルタできません。

どうしても結合したセルをフィルタしたい場合には、「SpecialCells」で「数式」の貼り付けをするとできます。

表がセル結合されているけど、フィルタして値が見えるようにしたい場合に使えます。

では、結合したセルをフィルタする方法について、解説していきます。

この記事で紹介すること

  • 結合したセルをフィルタする方法

目次から見たい項目へ移動すると便利ですよ。

目次

セル結合するとフィルタができない

セル結合するとフィルタができないです。

ちょっとやってみます。

セル結合を含む表でフィルタしてみる

セル結合を含む表でフィルタしてみます。

セル結合した表を用意します。

セル結合した表

セル結合した表を用意します

1行しかフィルタできないです。

1行しかフィルタできない

1行しかフィルタできないです

こんな感じで、セル結合すると、1行しかフィルタできないです。

結合したセルを正しくフィルタする

結合したセルを正しくフィルタしてみます。

やりたいこと

やりたいことは、結合したセルも正しくフィルタしたい、ということです。

結合したセルも正しくフィルタしたい

やりたいことは、結合したセルも正しくフィルタしたい、ということです

では、やってみます。

結合セルに値を入力する(PasteSpecial)

やり方は、同じ値を「数式」の貼り付けする、という方法です。

手順は、

  • IF関数で同じ値を作成
  • 作成したリストをコピー
  • 「数式」を「PasteSpecial」で結合セルに貼り付け
  • 作成したリストをクリア

という感じです。

Sub TEST1()
    
    'IF関数で同じ値を作成
    Range("C2:C9") = "=IF(A2<>"""",A2,C1)"
    Range("C2:C9").Value = Range("C2:C9").Value '値に変換
    
    '作成したリストをコピー
    Range("C2:C9").Copy
    
    Application.DisplayAlerts = False '警告を非表示
    '数式の貼り付けをする
    Range("A2").PasteSpecial Paste:=xlPasteFormulas
    Application.DisplayAlerts = True '警告を表示
    
    '作成したリストをクリア
    Range("C2:C9").Clear
    
End Sub

結合したセルを用意します。

結合したセルを用意

結合したセルを用意します

IF関数で同じ値を作成して、値に変換します。

IF関数で同じ値を作成

IF関数で同じ値を作成します。

IF関数で同じ値を作成します

値に値を代入して、値に変換します。

値に値を代入して、値に変換します

作業列をコピーします。

作業列をコピー

作業列をコピーします

数式ではないけど、「数式」の貼り付けをします。

ここがポイントです。

「数式」の貼付けをする

数式ではないけど、「数式」の貼り付けをします

作業列をクリアします。

作業列をクリア

作業列をクリアします

これで、準備が完了です。

準備が完了しました

結合セルをフィルタしてみます。

結合セルも正しくフィルタできた

結合セルも正しくフィルタできました

結合セルも正しくフィルタできました。

結合セルをどうしてもフィルタしたい場合に使えます。

おわりに

この記事では、結合したセルをフィルタする方法について、ご紹介しました。

結合したセルはフィルタすると、「1行しか」フィルタできません。

どうしても結合したセルをフィルタしたい場合には、「SpecialCells」で「数式」の貼り付けをするとできます。

表がセル結合されているけど、フィルタして値が見えるようにしたい場合に使えます。

参考になればと思います。最後までご覧くださいまして、ありがとうございました。

関連する記事から探す

カテゴリから探す

カテゴリから見たい項目を探すと便利ですよ。

サイト内を検索する

↓キーワードを入力する

アーカイブから探す