回覆列表
  • 1 # Excel學習世界

    推薦你用indirect 函式的第四種經典應用場景:跨資料表求和。

    我用的版本是 Excel 2016,其他版本的介面可能略有不同。

    案例:

    沿用昨天的表,如果我們需要對每個人的獎金求和,即跨表呼叫並求和,怎麼實現?

    解決方案:

    方案 1. 也許有人抖機靈,說在昨天已經多表呼叫的結果上,橫向 sum 求和。嗯,不能說不對,但是如果表資料列特別多,sheet 特別多,且總表只需要顯示求和資料時,這顯然不是最優方法。

    方案 2. 假如總表的人員排名跟所有月表的人員排名完全一致,可以用以下公式:

    =SUM("*"!B2)

    回車後,公式會自動變成 =SUM("1月:3月"!B2),即讀取所有 sheet 的 B2 單元格並求和

    * 請注意:這個方法很簡單,但是對錶格要求比較高,但凡人員列稍有差異,結果就出錯。比如,郭德綱 2 月休假,沒有獎金,2 月的表裡就沒有放他的名字,本方案就不適用

    方案 3. 輸入以下陣列公式,按 Ctrl +Shift + Enter 生效:

    =SUM(SUMIF(INDIRECT(ROW($1:$3)&"月!A:A"),A2,INDIRECT(ROW($1:$3)&"月!b:b")))

    公式翻譯:

    INDIRECT(ROW($1:$3)&"月!A:A"):讀取 sheet”1 月“到”3 月“的 A 列值,即姓名sumif(...,A2,INDIRECT(ROW($1:$3)&"月!b:b")):將上一步讀取的值與 A2 的值比較,如果相等(即姓名相同),則讀取 sheet”1 月“到”3 月“的 B 列值,即獎金最後用 Sum 對讀出的每個月獎金值求和

  • 中秋節和大豐收的關聯?
  • 等閒變卻故人心,卻道故人心易變是什麼意思?