求EXCEL高手幫忙,自動抓取計算最近日期區間數值平均

我要計算最近20日內的數值平均值,每個月分別有自己的工作表,為了取代每天手動抓取範圍,要如何寫出自動抓取從今天往前算最近20日的平均值??誇頁又要如何連結??例如:今天是本月的第一天,要往前從上一個工作頁跨頁到本日抓取最近20日又要如何寫公式?? 跪求高手們了
2023-03-31 11:18 發佈
chatGPT給的答案如下,可以參考看看:

您可以使用Excel的函數來計算最近20天的平均值。以下是一些步驟:
在每個月的工作表中,選擇一個單元格並輸入以下公式:=AVERAGE(OFFSET(TODAY(),-19,0,20,1))。這個公式會計算從當天往前20天的平均值。
確保當前日期是用 TODAY() 函數獲取的,這樣公式就會自動更新為當天的日期。
如果要在不同工作表之間跨越計算,您可以使用 INDIRECT() 函數來引用其他工作表中的單元格。例如,=AVERAGE(INDIRECT("Sheet2!A1")) 會從 "Sheet2" 工作表中引用 A1 單元格的數值。
如果要從上一個工作表跨越到當前工作表,您可以使用以下公式:=AVERAGE(INDIRECT("'"&TEXT(TODAY()-1,"mmm")&"'!A1"))。這個公式會使用 TEXT() 函數來獲取上個月份的名稱,然後將其與引號連接起來形成引用其他工作表的字符串。
您可以在每個工作表中複製和粘貼這些公式來計算每個月的最近20天的平均值。
如果您需要在計算中使用更多的邏輯,可能需要使用Excel VBA編程來處理複雜的計算邏輯。


根據你的需求,一般的公式可能較難以處理大小月或是萬年曆的公式運算,或者寫出來也會很長。
建議使用VBA程式碼處理,會比較簡潔一些。
錦子

我用您提供的公式=AVERAGE(OFFSET(TODAY(),-19,0,20,1))公式,出現提示為無效的。

2023-03-31 20:32
錦子

我用您提供的公式=AVERAGE(INDIRECT("'"&TEXT(TODAY()-1,"mmm")&"'!A1"))儲存格出現#DIV/0!錯誤訊息。

2023-03-31 20:33
下面作法無法跨年。
B2:
=IF(DAY(A2)>=20,SUM(OFFSET(INDIRECT(TEXT(A2,"m")&"月!a1"),DAY(A2),1,-20,1)),SUM(OFFSET(INDIRECT(TEXT(A2,"m")&"月!a1"),1,1,DAY(A2),1))+SUM(OFFSET(INDIRECT(TEXT(A2,"m")-1&"月!a1"),DAY(EOMONTH(A2,-1)),1,-(20-DAY(A2)),1)))/20

若要隨系統日期變更,可以將A2改成TODAY()或NOW()函數。





錦色如月,子耀光芒。
kolorwang
kolorwang 樓主

謝謝您,您說的要隨系統日期變更,是直接把DAY(A2)直接改成TODAY()還是DAY(TODAY())?

2023-04-01 12:45
錦子

DAY(A2)改成DAY(TODAY())

2023-04-01 13:02
DAY(A2)改成DAY(TODAY())
錦色如月,子耀光芒。
kolorwang
kolorwang 樓主

好的,我試試看,謝謝

2023-04-02 1:19
kolorwang
kolorwang 樓主

不好意思,我沒講清楚,我需要的最近20日總和是不包含當天往前數20天,請問是不是還要修改??

2023-04-02 1:31
=IF(DAY(A2)>=21,SUM(OFFSET(INDIRECT(TEXT(A2,"m")&"月!a1"),DAY(A2)-1,1,-20,1)),IF(DAY(A2)=1,SUM(OFFSET(INDIRECT(TEXT(A2,"m")-1&"月!a1"),DAY(EOMONTH(A2,-1)),1,-20,1)),SUM(OFFSET(INDIRECT(TEXT(A2,"m")&"月!a1"),1,1,DAY(A2)-1,1))+SUM(OFFSET(INDIRECT(TEXT(A2,"m")-1&"月!a1"),DAY(EOMONTH(A2,-1)),1,-(21-DAY(A2)),1))))/20
錦色如月,子耀光芒。
內文搜尋
X
評分
評分
複製連結
Mobile01提醒您
您目前瀏覽的是行動版網頁
是否切換到電腦版網頁呢?