Re: [算表] 用 Excel 自制記帳表的問題

看板Office作者 (呼拉豬)時間14年前 (2010/03/18 09:57), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串4/4 (看更多)
--原文恕刪-- 我也試了好一陣子,終於找到你需要的算式 以下是一個簡單的範例,而為了方便起見,所有東西都在同一頁 如果你要在不同頁計算,請自行修改變數 A B C D E F G H I 1 日期 類型 科目 支付方式 金額 3/1/10 3/2/10 2 3/1/10 食 外食 現金 20 外食 3 3/2/10 食 外食 現金 40 房租 4 3/2/10 住 房租 現金 3000 而在H2,你需要鍵入的算式為: =arrayformula(sum(if($A$2:$A=H$1,1,0)*if($C$2:$C=$G2,1,0)*$E$2:$E)) ------------------- ------------------- ------- X Y Z X 是查看 A2 到 A 欄最後一筆是否為 H2 所要求的日期,為真則輸出 1 ,反之為 0 Y C2 C H2 科目 1 0 Z 是輸出所有的金額 這個東西有點像真值表,當 X, Y 同時成立時,相乘才會輸出 1 ,再乘以該項目金額 而使用 arrayformula 函數時,它會列出所有 array 的結果 但我們在裡面使用了 sum 函數,所以只會輸出總和 1*1* 20=20 以 H2 為例,它會輸出 0*1* 40= 0 0*0*3000= 0 而我們又使用了 sum 函數,所以會在 H2 得其總和為 20+0+0=20 然後再拉公式到其他欄位,就可自動算出你要的結果了 另外 $A$2:$A, $C$2:$C, $E$2:$E 的 array 長度需相同 否則 arrayformula 無法計算 而且所有欄列須加上 $ 符號,才能鎖住範圍,複製到其他欄位時才不會跟著變動 例如拉公式到 H3 的時候, $A$2:$A 保持不變,而不會變成 $A$3:$A (我發現使用$A:$A會出問題,其因為 A1 是文字格式,非日期,程式因而無法判別) 同理,在 X 裡的 H$1,我們只要鎖住在第一列,欄位可以變動 拉公式到 H3 時,參照的日期位置仍在 H1,而不會跑到 H2 拉公式到 I2 時,參照的日期位置會自動跑到 I1 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 24.147.182.18

03/18 15:37, , 1F
感謝大大,終於寫出來了!而且還有詳細說明,太感謝了!
03/18 15:37, 1F
※ 編輯: hulapig 來自: 24.147.182.18 (03/18 21:26)

11/16 11:43, , 2F
=arrayformula(sum(($A:$A=H$1)*($C:$C=$G2)*n($E:$E)))
11/16 11:43, 2F
文章代碼(AID): #1BeOXrhE (Office)
文章代碼(AID): #1BeOXrhE (Office)