簡體   English   中英

如何使用 Google 表格計算每天的平均利潤

[英]How to calculate an average profit per day with Google Sheets

我做了一個電子表格來跟蹤我的收入增長。 它包括一個腳本,可以定期保存我所獲得的。 A列是日期,B列是多少。

我想計算我的每日平均利潤。

所以我去減去昨天到今天,然后對所有數據取平均值。 但是在此過程中出現了一個問題,因為我的腳本每天會多次保存數據(以確保我獲得數據,並更精確地跟蹤)。

  • 我想首先單獨計算每天的平均利潤(屏幕截圖上的 C 列)
  • 然后計算變化(屏幕截圖上的 D 列)
  • 然后平均變化 (截圖上的E欄)

這是我想到的過程

隨着我的數據每天都在增長,我正在尋找一種靈活的方式來做到這一點。 我認為QUERY可能是一種方式,但我不知道該怎么做。 我猜一個腳本也可以工作。 也許使用 FILTER 公式...

你對此有何看法? 干杯,NipthiAe。

你可以用3個公式來做到這一點:

在此處輸入圖像描述

D2中的第一個(查詢):

獲取每天的平均值

=query({A2:B}, 
   "Select Col1 ,count(Col1), avg(Col2) where Col1 is not null 
        group by Col1 Order By Col1 asc 
           label Col1 'Date', count(Col1) 'Days', avg(Col2) 'Average/day'")

G4第二名:

要獲得查詢獲得的平均值之間的差異:

=arrayformula(if(isblank(E4:E6),"",filter(E4:E6,E4:E6>-1)-filter(E3:E6,E3:E6>-1)))

F1中的第三個(查詢上方):

要獲得變化的平均值:

="Variation Avg: "& DOLLAR(round(AVERAGE(F3:F),2))

要計算每日利潤,您不應該每次都對投資組合進行平均。 例如,如果在一天內您有

文件夾
1
2
3
4

平均值為2.4 ,但這不是當天的利潤。 要計算一天的利潤,您需要用前一天的最后一個值減去當天的最后一個值。 在這種情況下,如果最后一個值為 0,則答案為 4。

這是我將如何做到這一點。

解決方案

第 1 步:在收盤時找出投資組合的價值

我們需要做的是找到每天的最新值。 最簡單的方法是查找當天的最后一個條目(使用日期時間)。 所以要獲得我們可以使用的最后一個日期時間(在我的例子中將它添加到D2 ):

=query({A3:A, arrayformula(int(A3:A))}; "select max(Col1) where Col1 is not null group by Col2 label max(Col1) ''"; 0)

讓我們解開這個公式:

{A3:A, arrayformula(int(A3:A))}

它是一個 2 列數組。 第一列是日期時間。 第二列只是日期。 這取決於int(datetime)返回代表日期的數字這一事實。 添加arrayformula以獲取每個日期時間的數據,然后您將獲得每個日期的日期。

然后查詢:

select max(Col1)
  where Col1 is not null
  group by Col2
  order by max(Col1)
  label max(Col1) ''

這里的訣竅是在一天內獲得最大(最新)的日期時間。 這可以通過選擇max(datetime)並按日期分組來實現。 然后我們可以為空單元格添加一個過濾器( where Col1 is not null )並對結果進行排序以確保正確排序。 還要通過在末尾添加label max(Col1) ''來刪除默認的 label。

第 2 步:獲取最后一個值

現在我們有了一天中的最后一個日期時間,我們可以使用vlookup來獲取值(在E3上):

=arrayformula(if(D3:D<>""; vlookup(D3:D; A3:B; 2; false); ""))

如您所見,這是一個簡單的vlookup ,它被包裹在if中,以防止在空單元格上出現錯誤。 arrayformula允許我們在一個公式中為每一行執行此操作。

第 3 步:獲取每日利潤

現在我們有了最新的值,我們只需要減去前一行(在F3上):

=arrayformula(if(E3:E100<>""; E3:E-offset(E3:E; -1; 0); ""))

offset允許我們使用這個公式而不必指定行數。 與往常一樣, arrayformula允許我們對單個公式中的所有行執行此操作,並過濾空行。

第 3 步:總平均值

我們終於可以取平均值了:

=average(F3:F)

如果您不是從 0 開始,則應將其更改為從下一個值 ( F4 ) 開始,因為第一個值將是該點之前的累積值。

參考

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM