
我在儲存格中有以下公式M8
:
{=SUM((MOD(ROW(M$16:$M977)-ROW($M$16),4)=0)*(M$16:$M977))}
使用這個公式,可以從每第四行盯著M16 獲取M 列每週的總小時數,例如m16+m20+m24+m28 等。將得到最新資訊位於頂部。當為我的新資料新增四個新行時,公式如下所示:
{=SUM((MOD(ROW(M$20:$M977)-ROW($M$20),4)=0)*(M$20:$M977))}
我如何讓它始終開始添加 M16,因為這是我新一周的新總小時數。
答案1
將M16的值放在檔案底部或不移動的儲存格中!事實上,每次新增行時,對儲存格的每個參考都會自動修改!
答案2
首先,您應該將其變更為SUMPRODUCT
公式。它不需要您將其作為數組公式輸入,而且 - 恕我直言 - 它更容易使用。
=SUMPRODUCT(M16:M977*(MOD(ROW(M16:M977)-ROW(M16),4)=0))
為了解決插入行時 Excel 的行為,我建議將資料轉換為表格。 (插入功能區 > 表格)它使引用「該區域中的所有資料」變得非常容易,並且每當表格變大或變小時,它都會以您想要的方式更新。在這種情況下,公式將如下所示:
=SUMPRODUCT(Table1[Hours]*(MOD(ROW(Table1[Hours])-ROW(Table1[[#Headers],[Hours]])-1,4)=0))
如果您由於某種原因無法將其轉換為表格,我建議您建立一個命名範圍並引用它。命名範圍的公式為:
=OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)
……引用它的公式是:
=SUMPRODUCT(rngHours*(MOD(ROW(rngHours)-ROW(OFFSET(rngHours,0,0,1,1)),4)=0))
....rngHours
您為命名範圍指定的名稱在哪裡。
如果你真的不想使用命名範圍,你可以將整個事情壓縮成一個大公式,但它會變得混亂,儘管函數:
=SUMPRODUCT(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15)*(MOD(ROW(OFFSET(Sheet3!$M$1,15,0,MATCH(9E+99,Sheet3!$M:$M)-15))-ROW(OFFSET(Sheet3!$M$1,15,0)),4)=0))