[英]Google Sheets - formula for expense sheet
我需要一個公式,可以幫助我計算出我的里程費的費用金額。
這是我的工作表https://docs.google.com/spreadsheets/d/1PPFuFWbxWi9iIdtYBJvnSNB1j1cjjQutepF3hnpGoFM/edit?usp=sharing
在費用標簽上,我需要檢查我在A列中約會的年份(因為不同的年份有不同的費率),然后檢查D列以查看是否顯示里程,然后在E列中查看哪種類型的里程(有4種類型),然后返回以I列輸入的數字乘以該年份的適當費率和里程類型。 我在另一個標簽中設置了價格表。
我認為這將是一個很長的IF和AND公式。 任何幫助將是巨大的!
在“基本日志”中,我更改了您的年度開始日期和結束日期的格式,以指明您所參考的年份。 我為“里程”添加了一個列。
在'Expenses'!M2
,我嘗試了此方法,它似乎有效:
=ARRAYFORMULA(iferror(if(isblank(A2:A),"",I2:I*vlookup(D2:D&year(A2:A)&E2:E,query({'Essentials Log'!Y2:Y&'Essentials Log'!Z2:Z&'Essentials Log'!AA2:AA,'Essentials Log'!AB2:AB},"Select *"),2,false))))
看看(我復制了您的示例表): 里程費用
我通過創建一個應用程序腳本解決了這個問題。
我意識到我不想使用公式,因為在我的$ col中,大多數條目都會被鍵入,因此我不想每次都復制和粘貼公式。
如果有人需要的話,這里是代碼。 我將其添加到菜單中,因此單擊即可完成計算。
function expenseMilageCalculation() {
var auditionsSheet = SpreadsheetApp.getActiveSpreadsheet();
var expensesTab = auditionsSheet.getActiveSheet();
var activeCell = expensesTab.getActiveCell();
var activeRow = activeCell.getRow();
var expenseDate = expensesTab.getRange(activeRow, 1).getValue();
var expenseYear = expenseDate.getFullYear();
var expenseType = expensesTab.getRange(activeRow, 4).getValue();
var expenseDetails = expensesTab.getRange(activeRow, 5).getValue();
var numMiles = expensesTab.getRange(activeRow, 9).getValue();
var essentialsLogTab = auditionsSheet.getSheetByName("Essentials Log")
//2018 Business Milage
if (expenseYear == 2018 && expenseType == "Milage" && expenseDetails == "Business") {
var milageBusinessRate2018 = essentialsLogTab.getRange(3, 27).getValue();
var dollarMilesDeduction = numMiles * milageBusinessRate2018
expensesTab.getRange(activeRow, 8).setValue(dollarMilesDeduction)
}
//2019 Business Milage
if (expenseYear == 2019 && expenseType == "Milage" && expenseDetails == "Business") {
var milageBusinessRate2019 = essentialsLogTab.getRange(8, 27).getValue();
var dollarMilesDeduction = numMiles * milageBusinessRate2019
expensesTab.getRange(activeRow, 8).setValue(dollarMilesDeduction)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.