1

これを検索したところ、フィルターとダイナミックレンジに関連する回答が個別に見つかりましたが、それらをまとめる方法がわかりませんでした。

私のExcelシートの構造は次のとおりです。

  • データ:

    • 日付ABC
    • 2012 年 2 月 2 日 a1 b1 c1
    • 2012 年 7 月 7 日 a2 b2 c2
  • グラフ:

    • このシートで生成されたグラフ

特定の基準日以上のデータを持つ行のみを返す名前付きダイナミック レンジmyDataRangeを使用しています。

  • =OFFSET(Data!$C$2,COUNTIF(Data!$B:$B,"<"&Graphs!$B$1&""),0,(COUNTA(Data!$C:$C)-1-COUNTIF(データ!$B:$B,"<"&Graphs!$B$1&"")),1)

グラフ シートで、セル B1 に日付を入力しました。たとえば、05-05-2012 です。

これにより、myDataRange がデータの 2 行目 (誰の日付が 07-07-2012) のみを返すことが保証されます。これから、列 C をプロットします。

質問: しかし、列 A に従って動的範囲をフィルター処理する必要もあります。そのため、基準日がグラフ セル B1 の 2012 年 5 月 5 日で、フィルターが a2 の場合、myData 範囲は 1 行のみを返します。ただし、フィルターが 05-05-2012 で a1 の場合、0 行が返されます。

誰かがこれを手伝ってくれますか - ダイナミックレンジ自体を変更できますか、それとも別の方法で実装する必要がありますか? ダイナミック レンジ パラメータを変更しようとしましたが、値が返されず、Excel でグラフ化できないため、エラー メッセージが表示され続けます。前もって感謝します :)

4

1 に答える 1

2

上記の範囲と、シートに挿入したコンボボックスで以下のコードを使用しています。

コードは次のとおりです。

サブ DropDown2_Change()

Dim selectedVal As String

With ThisWorkbook.Sheets("Graphs02").Shapes("Drop Down 2").ControlFormat
selectedVal = .List(.Value)
End With

'MsgBox selectedVal

With ThisWorkbook.Sheets("Data")
.Select
.Range("A1:BY60000").Select

Selection.AutoFilter
Selection.AutoFilter Field:=4, Criteria1:=selectedVal

End With

ThisWorkbook.Sheets("Graphs02").Select

サブ終了

この中で、コンボボックス(ドロップダウン2)に入れたシートはシート「graphs02」です。シート データにはすべてのデータが含まれており、コンボ ボックスで選択された値に従ってフィルター処理されます。

繰り返しますが、私はこれのほとんどをstackoverflowの助けを借りて機能させました:)

于 2013-01-10T06:22:10.357 に答える