我有一個從外部數據源(訪問)創建的數據透視表,其中包含每週每小時的記錄數,平均期限爲3個月。就在這個數據透視表旁邊,我創建了一個列來計算一天中每個小時的平均數量記錄。 (這裏的一週只是5天 - 坐在&太陽不算)。PivotCache刷新 - 單元格公式返回#值I2
爲了達到上述目的,我創建了一個UDF來計算來自透視數據字段(Week_Ending)的星期數。爲了確保代碼不會計算重影或不存在的星期,我已經在UDF中使用了pivotcache刷新。這完美的工作,除了它現在在我期待每日平均值的單元格中給出#value(公式中使用的值是錯誤的數據類型)。如果從「Week_Ending」字段中選擇一週而不是ALL,我發現沒有任何與單元格公式有關的問題。
我附上了代碼和單元格功能以及問題的圖片。
細胞式細胞E6,它是高達細胞E29(每小時的單元格引用由1對每個小區遞增)
=IF($E$4=1,GETPIVOTDATA("CountOfCase_Id",$A$4,"HOURLY",A6)/5,GETPIVOTDATA("CountOfCase_Id",$A$4,"HOURLY",A6)/($E$4*5))
VBA的UDF功能
Option Explicit
Function WeekCount(InputVal As Variant) As Integer
Dim book1 As String, PivotName As String
book1 = ThisWorkbook.Name
With Workbooks(book1).ActiveSheet
If InputVal = "(All)" Then
PivotName = .PivotTables(1).Name
.PivotTables(PivotName).PivotCache.MissingItemsLimit = xlMissingItemsNone
.PivotTables(PivotName).PivotCache.Refresh
WeekCount = .PivotTables(PivotName).PivotFields("WEEK_ENDING").PivotItems.Count
Else
WeekCount = 1
End If
End With
End Function
類似我感謝任何幫助。 Excel版本是2003
如果你在'E4'(我認爲它是= WEEKCOUNT是?)和'= B6 /($ E $ 4 * 5)'在'E6'中說13然後複製下去會發生什麼? – pnuts
是的,從單元格'E4(= WeekCount(B2))'調用UDF。如果根據您的建議的公式被複制下來,則會顯示結果。但是,如果將Week_Ending更改爲一週並返回ALL,則會顯示相同的#值錯誤。如果您手動輸入13或選擇一個星期(單元格E6中的UDF輸入1),我現有的單元格公式將起作用。 – user2000380
所以我認爲'證明'問題在於你的UDF,儘管我們看不到WEEK_ENDING字段的例子,這可能是問題所在。 – pnuts