在交易數據中,常常會看到同一幣種的多次買入,買入的單價和數量可能有所不同。如果我們想要計算每個幣種的總量、總價以及加權平均價格,就需要對數據進行整理和計算。本文將透過 Excel 和 Python 兩種方法,幫助你實現這個目標。
示例數據
假設我們有一份交易數據,包含以下列:
- 時間:交易時間
- 幣種:買入的幣種
- 交易方向:買入(BUY)或賣出(SELL)
- 單價:買入的單個幣種價格
- 數量:買入的數量
- 總價:買入幣種的總花費(單價 × 數量)
舉個例子:
時間 | 幣種 | 交易方向 | 單價 | 數量 | 總價 |
---|---|---|---|---|---|
2024/2/29 10:26 | ARKM | BUY | 2.2753 | 94 | 213.8782 |
2024/2/29 10:26 | ARKM | BUY | 2.2748 | 4 | 9.0992 |
2024/2/29 10:26 | ARKM | BUY | 2.2749 | 50 | 113.745 |
2024/2/29 10:25 | EDU | BUY | 0.91094 | 13 | 11.8422 |
2024/4/7 12:39 | ENA | BUY | 1.194 | 1687.05 | 2014.3377 |
或者如下圖:
我們需要計算:
- 每個幣種的買入總量。
- 每個幣種的買入總價。
- 每個幣種的加權平均價格,即
(單價 * 數量) / 總量
。
方法 1:使用 Excel 計算
Excel 的樞紐分析表功能非常適合進行分組統計,但它沒有內建的加權平均計算功能。因此,我們需要稍微調整一下流程:
步驟 1:創建樞紐分析表
- 打開 Excel 檔案,並確保數據格式正確。
- 選擇所有數據區域(包括表頭),然後點選 插入 -> 樞紐分析表。
- 在彈出的視窗中選擇 新工作表,然後點選 確定。
步驟 2:設置樞紐分析表字段
- 將 幣種 拖到 行 區域。
- 將 數量 和 總價 拖到 值 區域,並設置它們的求和(預設即為求和)。
這樣你就可以得到每個幣種的總量和總價。
步驟 3:計算加權平均價格
- 在樞紐分析表旁邊創建一個新的列來計算加權平均價格。
- 假設樞紐分析表的 總價 在 G 列,數量 在 F 列,則在新列的第一個單元格(假設是 H2)中,輸入以下公式:
1
=G2/F2
- 將該公式複製到下面的單元格,得到每個幣種的加權平均價格。
完整的樞紐分析表示例
幣種 | 總量 | 總價 | 加權平均價格 |
---|---|---|---|
ARKM | 529 | 1070.349 | 2.024 |
EDU | 1004.3 | 915.561 | 0.912 |
ENA | 5636.82 | 7639.734 | 1.353 |
最後得出表格如下:
方法 2:使用 Python 計算加權平均價格
如果你更喜歡使用 Python 來自動化計算,可以使用 pandas
庫進行處理。以下是完整的 Python 腳本,幫助你根據數據計算每個幣種的買入總量、總價和加權平均價格。
步驟 1:安裝 pandas 庫
如果你還沒有安裝 pandas
庫,可以透過以下命令進行安裝:
|
|
步驟 2:Python 腳本
|
|
解釋:
- 讀取數據:透過
pandas
的read_excel()
函數讀取 Excel 檔案。 - 計算加權價格:使用
買入單價 * 數量
計算每筆交易的加權價格。 - 按幣種分組:透過
groupby('幣種')
對數據按幣種分組,計算 總量 和 總價(加權價格的總和)。 - 計算加權平均價格:最後,使用
總價 / 總量
來計算每個幣種的加權平均價格。 - 輸出結果:透過
to_excel()
將結果保存到新的 Excel 檔案中。
輸出結果
幣種 | 總量 | 總價 | 平均價格 |
---|---|---|---|
ARKM | 529 | 1070.349 | 2.024 |
EDU | 1004.3 | 915.561 | 0.912 |
ENA | 5636.82 | 7639.734 | 1.353 |
總結
- Excel 方法:透過樞紐分析表和手動計算加權平均價格,你可以快速實現每個幣種的統計。
- Python 方法:透過
pandas
自動化處理,你可以更加靈活地計算和輸出結果,特別適用於數據量較大的情況。
選擇適合你的方法來進行計算,如果你有任何問題或需要進一步調整,歡迎隨時聯繫我!