簡體   English   中英

Google表格-費用表的公式

[英]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.

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