→ cutekid: 謝謝 s 大,為什麼原本的 sum 會那樣呢 08/11 01:38
→ soyoso: 公式內的sum只有回傳一個加總後的元素值,因此以index指定 08/11 09:45
→ soyoso: 第二個元素就會回傳#ref 08/11 09:45
→ cutekid: 那第一個元素的 4 是怎麼得到的呢 08/11 10:23
→ cutekid: A1 + B1 嗎? 背後處理的邏輯好像跟所想的不太一樣 08/11 10:27
→ soyoso: 陣列公式的話,會加總a:a和b:b的第一個儲存格,為1+3 08/11 10:33
→ cutekid: 所以 sum 裡面有 multiple range 的話,它會將每個 range 08/11 11:27
→ cutekid: 第一個儲存格的值做加總 ? 08/11 11:28
→ soyoso: =INDEX(SUM(OFFSET(A:A,0,ROW(1:2)-1)),1)只會有一個元素 08/11 11:28
→ soyoso: 值 08/11 11:28
→ soyoso: 看起來應該也要和sum(a:a,b:b)回傳10才是 08/11 11:28
→ soyoso: 如這個邏輯是原po疑問的話,個人覺得這是sum函數在配合 08/11 11:28
→ soyoso: offset要在加上column讓其產生二維陣列,如=INDEX(SUM( 08/11 11:28
→ soyoso: OFFSET(A:A,ROW(1:2)-1,column(a:b)-1)),1) 08/11 11:28
→ soyoso: sum參照多個範圍,並不會只以第一個儲存格做加總 08/11 11:34
→ soyoso: 而是配合offset時要給於足夠的元素位置,原公式內只有一維 08/11 11:34
→ soyoso: 二個元素位置 08/11 11:34
→ soyoso: sum無法在這二個元素位置內就展開所有的值,因此帶入範圍 08/11 11:34
→ soyoso: 內的第一個儲存格值 08/11 11:34
→ soyoso: 回文11:28的公式應是 08/11 11:39
→ soyoso: =INDEX(SUM(OFFSET(A1,ROW(1:2)-1,column(a:b)-1)),1) 08/11 11:39
意外發現:
選取 C,D 欄,公式填上 =OFFSET(A:A,0,ROW(1:2)-1),按Ctrl+Shift+Enter
會無法複製 A,B 欄的資料,改成 =OFFSET(OFFSET(A:A,0,ROW(1:2)-1),0,0)
就可以複製。
※ 編輯: cutekid (1.168.25.150 臺灣), 08/11/2019 21:10:04
大約懂 s 大的意思了:
offset 所產生的多組 range 應用在 sum 函數裡,沒有辦法達到類似下面的效果
{sum(range1),sum(range2),..} ←多組結果
只能牽生 range_start:range_end 給 sum 使用,所以最後還是只回傳一個結果
反觀 sumif 即可達到: {sumif(range1,..),sumif(range2,..),..} ←多組結果
※ 編輯: cutekid (1.168.25.150 臺灣), 08/11/2019 22:11:36
※ 編輯: cutekid (1.168.25.150 臺灣), 08/15/2019 14:54:28