2010-08-27 73 views
1

我正在嘗試使用Sql server視圖的數據透視表在Excel中創建一些報告。客戶的一項要求是能夠根據他們選擇的日期範圍來篩選報告,這看起來很合理。最終用戶進程需要相當簡單,所以我的首選是爲開始日期和結束日期設置一個單元格,並允許用戶輸入這些並刷新表格。如何通過Excel數據透視表中的單元格公式過濾日期?

有,我一直沒能闖過兩個問題:

  1. 選擇日期過濾器似乎並未提供任何辦法,我引用單元格作爲一個價值來源。我當時必須把它放進去。

  2. 似乎只有在日期字段上分組時才能定義日期範圍。對於某些報告,這違反了規範。數據透視表的「報表過濾器」部分似乎只允許我按單個值進行過濾,而不是範圍。對於可能有數百個日期需要處理的真實數據,這會變得難以管理。

一件事我曾嘗試是無需用單獨的片材在同一工作簿的任何聚集體列以創建一箇中間表,然後篩選。這將列正確隱藏在該中間表中,但對從其派生的數據透視表沒有影響。

有沒有人有如何做這項工作的想法?這似乎是一個相當明顯的用例 - 我是否缺少關於如何使用數據透視表的問題?

回答

1

您可以做的簡單事情是即時更改數據透視表查詢。

當源單元格更改(Worksheet_Changed事件)時,請附加" AND WhateverDate > '1/1/1111'"Me.PivotTables("Your pivot").PivotCache.CommandText並刷新數據透視表。

+0

這是有效的,但我們最終決定不去使用它,因爲使用VBA分發工作簿會導致警告給最終用戶,這似乎比培訓他們自己做日期過濾更不方便用戶使用。 我想這裏的教訓是,如果您想提供真正無縫的用戶體驗,您可能必須將功能置於您自己的應用程序中。 – GlennS 2010-09-02 14:48:06

0

我記得幾年前,我通過將SQL查詢設置爲動態(即將它作爲字符串放在VBA中,並在where條件中使用帶有範圍值的單元格)來解決了類似的需求。然後用標有「刷新」的按鈕調用VBA macor。

但是我很抱歉沒有這個代碼可用,我只記得一般的想法。

0

這已經死了一段時間,但我想我會發布一種不同的方法。將一個公式添加到源表中,該公式爲您想要的東西返回'1',爲您不需要的東西返回'0',然後在僅過濾'1'的數據透視表中添加一個過濾器。

相關問題