我試圖將資料從 Excel 主表拖曳到另一個 Excel 檔案中,但每行都會跳過數字。
這就是我想做的
='[MASTER ITEM LIST 2024.xlsx]'!$E15+'[MASTER ITEM LIST 2024.xlsx]'!$E16
='[MASTER ITEM LIST 2024.xlsx]'!$E17+'[MASTER ITEM LIST 2024.xlsx]'!$E18
='[MASTER ITEM LIST 2024.xlsx]'!$E19+'[MASTER ITEM LIST 2024.xlsx]'!$E21
自動填充期間發生以下情況
='[MASTER ITEM LIST 2024.xlsx]'!$E15+'[MASTER ITEM LIST 2024.xlsx]'!$E16
='[MASTER ITEM LIST 2024.xlsx]'!$E16+'[MASTER ITEM LIST 2024.xlsx]'!$E17
='[MASTER ITEM LIST 2024.xlsx]'!$E17+'[MASTER ITEM LIST 2024.xlsx]'!$E18
我還嘗試將線條加倍並讓它識別跳躍模式,但這就是我得到的
='[MASTER ITEM LIST 2024.xlsx]'!$E15+'[MASTER ITEM LIST 2024.xlsx]'!$E16
='[MASTER ITEM LIST 2024.xlsx]'!$E17+'[MASTER ITEM LIST 2024.xlsx]'!$E18
='[MASTER ITEM LIST 2024.xlsx]'!$E17+'[MASTER ITEM LIST 2024.xlsx]'!$E18
='[MASTER ITEM LIST 2024.xlsx]'!$E19+'[MASTER ITEM LIST 2024.xlsx]'!$E21
='[MASTER ITEM LIST 2024.xlsx]'!$E19+'[MASTER ITEM LIST 2024.xlsx]'!$E21
='[MASTER ITEM LIST 2024.xlsx]'!$E21+'[MASTER ITEM LIST 2024.xlsx]'!$E23
答案1
這是使用INDIRECT()
函數解決問題的一種方法:
• 在儲存格中使用的公式A1
=INDIRECT("'[MASTER ITEM LIST 2024.xlsx]Sheet1'!$E"&(ROW()*2-1)+14)+
INDIRECT("'[MASTER ITEM LIST 2024.xlsx]Sheet1'!$E"&ROW()*2+14)
或者,更短一點:
=SUM(INDIRECT("'[MASTER ITEM LIST 2024.xlsx]Sheet1'!$E"&(ROW()*2+{-1,0})+14))
筆記:#REF!
如果MASTER ITEM LIST 2024.xlsx
在使用輸入公式的檔案時未打開,則上面的公式會傳回錯誤 --> 。只要兩個文件都打開,它就可以工作。
還有一個缺點是所使用的功能。INDIRECT()
函數本質上是不穩定的,也就是說,當任何開啟的工作簿發生變更時,它總是會重新計算,並且由於它是單執行緒的,它會減慢 Excel 的工作功能。根據版本,第二種方法INDIRECT()
需要在退出編輯模式時按CTRL+ SHIFT+ 。ENTER
一種替代方法是將TOCOL()
+WRAPROWS()
與BYROW()
函數一起使用。
• 在儲存格中使用的公式A1
=LET(
x, TOCOL('[MASTER ITEM LIST 2024.xlsx]Sheet1'!$E:$E,1),
y, ROWS(x),
BYROW(WRAPROWS(IF(ISEVEN(y),x,VSTACK(x,0)),2),SUM))
上面共享的公式適用於Office Insiders
但要使其適用於Current Channel Users
需要MS365
添加LAMBDA()
=LET(
x, TOCOL('[MASTER ITEM LIST 2024.xlsx]Sheet1'!$E:$E,1),
y, ROWS(x),
BYROW(WRAPROWS(IF(ISEVEN(y),x,VSTACK(x,0)),2),LAMBDA(a,SUM(a))))