2

Excel 2010 には、スライサーと呼ばれるピボットテーブル機能があります。スライサーはいいですね。ただし、多数の一意の値を含む列をスライスすると、スライサーはうまくいきません。

スライサーを「スライダー」(スクロール バー) に結び付ける方法を知りたいです。これにより、スクロール バーの値以下のすべてのスライサー値を選択するスクロール バーにマクロをリンクできます。クリックしてスクロールバーを変更すると、値が変更され、スライサーの選択された値が変更されます。

4

1 に答える 1

4

これを行い、仲買人(スライサー)を避ける方法を見つけました。これは、私自身の特定のデータがどのように構造化されているかに関係している可能性がありますが、一般的には機能すると思います。

  1. マクロレコーダを使用して、スライサーを設定する列に値フィルターを設定して自分自身を記録します。私の場合、列は% of Sales with Vendor
    「値フィルター->より大きい」です。列を選択し、値を入力します。ピボットテーブルが変更されます。マクロレコーダを停止します。

  2. 別のコードが必要です。新しいマクロを記録します。このマクロを使用して、ピボットテーブルに設定したフィルターをクリアしてから、レコーダーを停止します。

  3. 開発者->挿入->スクロールバー。今のところ、スクロールバーをどこかに置くだけです。

  4. の値の範囲の値を% of Sales with VendorA1のようなセルに入力します。私のピボットテーブルはデータをパーセンテージで示していますが、基になるソースは小数を使用しています。20%の場合、2と入力します。なぜですか。整数以外の値ではバーをスクロールできません。本当に0.2が欲しいのですが=A1/10、隣接するセルに入力することで、本当に欲しい値をいつでも参照できます

  5. このように見えるマクロを(記録した2つから)1つだけ作成する必要があります。


Sub sliderfilter()  
    '  
    ' sliderfilter Macro  
    '  
    '  

    ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor"). _  
    ClearAllFilters  

    ActiveSheet.PivotTables("PivotTable2").PivotFields("Vendor").PivotFilters. _  
        Add Type:=xlValueIsGreaterThan, DataField:=ActiveSheet.PivotTables( _  
        "PivotTable2").PivotFields("% of Sales with Vendor"), Value1:=Range("B1").Value

End Sub
  1. A1は、値があった場所です2。スクロールバーにはCellLink$ A$1が必要です。ただし、マクロ参照B1...値の適切な範囲内にあるように10で割る場所% of Sales with Vendor

  2. もちろん、マクロをスクロールバーに割り当てます。

スクロールバーを変更すると、A1とB1が変更され、B1の値を使用して値フィルターを実行するようにマクロに指示します。このようにして、スクロールバーの値をクリックまたはスライドするだけではスライドできないため、スライダーが作成されました(PS。長辺が水平のスクロールバーはスライダーです)

于 2012-12-14T18:39:32.067 に答える