首先建立一個交易紀錄表:
紀錄表裡有「股票代號、股票名稱、交易帳戶、上市/上櫃、個股/ETF/ETN、交易日期、單價、交易股數、價金、交易手續費、證交稅、合計金額、庫存數量、備註」

「股票代號」為股票上市公司在證交所的代號。
「股票名稱」為代號所對應的股票名稱,「上市」的台灣股票利用 GOOGLEFINANCE 的公式 '= GOOGLEFINANCE("TPE:"&A2, "name")',可以抓到英文的股票名稱,再用翻譯 '=GOOGLETRANSLATE(文字, "en", "zh-TW")',就可以得到中文名。=GOOGLETRANSLATE(=GOOGLEFINANCE("TPE:"&A2, "name"), "en", "zh-TW")

但「上櫃」的股票就不行,後續必須用其他方式補完。
「交易帳戶」因為我有多個證券戶,所以用這個欄位來分類。
「個股/ETF/ETN」因為證交稅有依個股或是ETF計算,所以買賣時必須知道分類。
「單價、交易股數、價金」價金 = 單價 x 股數,買入股數為+值,賣出為-值。
「交易手續費」公定手續費為價金的千分之1.425 (1.425‰),有些券商會有最低20元的消費門檻,有些券商則是最低1元。而手續費折讓幾乎都是下個月初才會結算退還。
'=if(I2=0,0, if(ROUNDDOWN(abs(I2)*0.1425%) >20,ROUNDDOWN(abs(I2)*0.1425%),20))'

「證交稅」則是賣出股票時被政府抽的稅金,目前若賣出的是一般的個股證交稅為價金的千分之3,若賣出的是ETF則為價金的千分之1 ,且不到1元不計稅。
'=if(H2>0,0, if(E2="ETF",ROUNDDOWN(I2*0.1%),ROUNDDOWN(I2*0.3%)))*-1'

「合計」則是將 價金+手續費+證交稅 三者加總,算出實際支出(或回收)的成本。
「庫存股數」則是計算該筆交易後,該股票我們手上還有幾股,所以這裡用SUMIF來達成。以M5為例:=sumif($A$2:$A5,A5,$H$2:$H5)

「備註」可以記錄下買入/賣出該股票原因,記下當下的理由,做為未來買賣的考量。
接下來將第一列凍結:

「移到最後」這個按鈕可以快速的將畫面移到最後一行,這部分需要使用apps script。點選「擴充功能」→「Apps Script」,就可以打開Apps Script視窗。


/* 移到最後一列 */
function goToLastRow() {
const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
const lastRow = sheet.getLastRow(); // 獲取最後一列的行數
sheet.setActiveRange(sheet.getRange(lastRow, 1)); // 設定活動範圍到最後一列的第一列
}
這是一段簡單的小程式,讓我們可以快速移到最後一行,編輯完Apps Script後記得要儲存更。
接下來我們要畫一個按鈕上去,回到試算表用「插入」→「繪圖」


繪圖視窗選圖案→可以找到按鈕的圖形(GOOGLE叫它「斜面」)

滑鼠一拖一拉就可以畫出一個「按鈕」,在它上面按滑鼠右鍵→「編輯文字」,就上打上「移到最後」的文字,最後按下「儲存並關閉」,我們的表上就多了顆按鈕。

按鈕可調整大小位置,按下按鈕右側的三個小黑點,選「指派指令碼」

指派指令碼打上剛剛建之的Apps Script 函式名稱 「goToLastRow」,再按下「確定」

第一次執行 Apps Script 需要使用者的授權確認,請按「確定」並完成授權確認步驟。



之後再按「移到最後」就不會再出現這個授權視窗。


















