上次個稅算法閑聊(2)提到了個稅累計預(yù)扣會用到兩個函數(shù):indirect和sumproduct屯吊,indirect是引用數(shù)據(jù)予跌,而sumproduct則是將引用的數(shù)據(jù)匯總求和,我們來講工作中會遇到的2種求和情況
1曹抬、多表位置相同求和-sum
2棵逊、多表位置不定多條件求和-sumproduct+sumif
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??01 多表位置相同求和
每到季度、半年度悼吱、年度時脚仔,總會需要寫總結(jié)報告,這個時候往往需要一張匯總表將過往數(shù)據(jù)求和匯總舆绎,這些數(shù)據(jù)的特征就是在不同表的同一個位置
舉個例子:我們公司每天都要把前一天的銷售日報表發(fā)到微信群給領(lǐng)導(dǎo)過目
月底了,老板說要看看這個月的銷售月報表
然后我們來觀察一下:日報表和月報表根本沒有什么區(qū)別们颜,每個項目的位置一樣吕朵,那這個時候我們就可以用sum函數(shù)來實現(xiàn)相同位置跨多表求和
使用公式:SUM('2019.01.23:2019.01.30'!e3), 即對23到30日的所有銷售日報表中的e3單元格求和
Excel中多表猎醇,多單元格引用用“:”,如a:e意為選取A列到E列,跨表引用的形式為“表名!單元格”努溃,如2硫嘶!a1,意為因為工作表名為2的a1單元格
小結(jié):
跨表引用-Sum函數(shù)優(yōu)缺點
優(yōu)點:位置相同時梧税,函數(shù)簡單易動
缺點:位置變化時沦疾,跨表引用相同數(shù)據(jù)原理上錯誤,若堅持用sum函數(shù)實現(xiàn)匯總第队,只能手工點擊表格獲取位置哮塞,麻煩
? ? ? ? ? ? ?02 多表位置不定多條件求和-sumproduct+sumif
期待老板每天只看日報表,月底只看月報表凳谦,簡直是奢望忆畅,老板真正想看的表格長這樣,有日銷售額尸执,累計銷售額家凯、完成率
標(biāo)紅處其實就是求累計數(shù)據(jù),這個時候用sum函數(shù)根本搞不定
我在實際完成處把公式套好了如失,又用純手工求和的方法驗證了一遍绊诲,正確無誤,可以放出來了
公式:=SUMPRODUCT(SUMIF(INDIRECT(ROW(INDIRECT("28:"&$D$1))&"日!c3:c4"),$C$3,INDIRECT(ROW(INDIRECT("28:"&$D$1))&"日!e3")))
括號太多褪贵,直接復(fù)制就行了掂之,要不然容易出錯
整個公式意為:在多張表中通過條件比對的方式找到數(shù)據(jù),利用sumproduct函數(shù)對找到的數(shù)據(jù)進行求和竭鞍;
Sumproduct(sumif(條件區(qū)域c3到c4,求和條件板惑,求和區(qū)域:每一張的e3))
公式說明
假設(shè)有N張表(為了偷懶,我做了3張表意思意思一下偎快,28日冯乘、29日、30日)
當(dāng)d1處輸入30時
ROW(INDIRECT("28:"&$D$1))返回row(28:30)晒夹,即{28裆馒;29;30}
INDIRECT(ROW(INDIRECT("28:"&$D$1))&"日!e3")))等價于indirect({28丐怯;29喷好;30})&"日!e3"),即分別引用28!e3读跷、29!e3梗搅、30!e3這3個單元格的值
公式利用sumif函數(shù)篩選出符合條件的數(shù)組,然后利用sumproduct函數(shù)進行求和
工資累計求和:
上面的公式解決了累計求和的問題,只需要把相應(yīng)的區(qū)域替換即可完成工資累計求和
公式如下SUMPRODUCT(SUMIF(INDIRECT(ROW(INDIRECT("1:"&$G$1))&"月!A:A"),$A3,INDIRECT(ROW(INDIRECT("1:"&$G$1))&"月!c:c")))
直接復(fù)制就行无切,要不然照著抄都容易抄錯荡短,考驗眼神的時候到了
累計工資的算法都會了,專項附加累計扣除額哆键、個稅累計繳納數(shù)直接更改區(qū)域就行了掘托,換湯不換藥
個稅公式
ROUND(MAX((I3-J3)*{0.03;0.1;0.2;0.25;0.3;0.35;0.45}-{0;2520;16920;31920;52920;85920;181920},0)-K3,2)
萬事具備,只欠工資了
寫在后面
我很努力想要把累計求和的公式給說透籍嘹,無能水平不過闪盔,實在是描述不清楚,就這樣將就看吧辱士,有空我再理一遍思緒