我正在嘗試創建一個函式,該函式將兩個日期之間行駛的所有英里數相加,同時使用該 =arrayformula函式向下迭代結果列
下面是我的函式的語法:
'TempDataSet'!G2:G:總行駛里程的總和范圍
'TempDataSet'!C2:C:具有所有驅動日期的標準列
A7:開始日期
B7:結束日期
這是我在下面使用 sumifs 函式撰寫的函式
=SUMIFS('TempDataSet'!$G$2:$G,'TempDataSet'!$C$2:$C,">="&A7,'TempDataSet'!$C$2:$C,"<="&B7)
此功能有效,但是我想實作該=arrayformula功能,以便該功能可以自動向下拖動結果。
我知道 ** 你不能=sumifs在 內使用=arrayformula,所以這就是我被卡住的地方
使用=sumifan 中的函式執行此操作的方法是=arrayformula什么?
我也嘗試過使用該=query函式,但=arrayformula不支持 =query 函式
uj5u.com熱心網友回復:
使用 MMULT(如果資料在第 2 行和第 10 行之間)
=mmult(transpose(arrayformula(
IF((TempDataSet!$C$2:$C$10>=TRANSPOSE(A7:A))*(TempDataSet!$C$2:$C$10<=TRANSPOSE(B7:B)),
TempDataSet!$G$2:$G$10,0))),
sequence(rows(TempDataSet!$G$2:$G$10),1,1,0))
如果您限制 TempDataSet 中的行數以避免長計算,您還可以使用
=mmult(transpose(arrayformula(
IF((TempDataSet!$C$2:$C>=TRANSPOSE(A7:A))*(TempDataSet!$C$2:$C<=TRANSPOSE(B7:B)),
value(TempDataSet!$G$2:$G),0))),
sequence(rows(TempDataSet!$G$2:$G),1,1,0))
解釋
創建第一個條件矩陣
=arrayformula(IF((TempDataSet!$A$2:$A$10>=TRANSPOSE(A2:A7))*(TempDataSet!$A$2:$A$10<=TRANSPOSE(B2:B7)),TempDataSet!$B$2:$B$10,0))

創建一個 1 的序列:序列(列數為 1,行數等于我轉置的矩陣的列數)
=sequence(rows(TempDataSet!$B$2:$B10),1,1,0)最后申請MMULT:MMULT
uj5u.com熱心網友回復:
嘗試:
=SUMPRODUCT(FILTER('TempDataSet'!G2:G; 'TempDataSet'!C2:C>A7; 'TempDataSet'!C2:C<=B7))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/384876.html
