用公式=sumproduct多条件乘积(($G$3:$G$37=G3)*(H3<$H$3:$H$37))+1即可实现。每天都有数据增加,每天都要修改$37吗?


如图,我在流水表里有J列的销售额,是用公式=IF(G3*H3=0,"",G3*H3)计算的。我想在结算表里计算每期每个人的应收,用sumproduct,公式是=SUMPR...
如图,我在流水表里有J列的销售额,是用公式=IF(G3*H3=0,"",G3*H3)计算的。我想在结算表里计算每期每个人的应收,用sumproduct,公式是=SUMPRODUCT((销售流水表!C3:C1000=财务结算表!B5)*(销售流水表!D3:D1000=财务结算表!C3)*销售流水表!J3:J1000),但每次都返回#VALUE!,请问怎么改公式才可以正常计算。PS:我的流水表可能只到了第30行,但我所有的计算时候都是用1000行的,免得以后又慢慢拖动公式复制。
展开
选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
公式是正确的,考虑到要复制,应该加绝对引用符号:=SUMPRODUCT((销售流水表!$C$3:$C$1000=$B5)*(销售流水表!$D$3:$D$1000=C$3)*销售流水表!$J$3:$J$1000)如果仍返回#VALUE!,应该是J列有非数值,比如IF公式返回的空文本既然J=G*H,那么直接:=SUMPRODUCT((销售流水表!$C$3:$C$1000=$B5)*(销售流水表!$D$3:$D$1000=C$3)*销售流水表!$G$3:$G$1000*销售流水表!$H$3:$H$1000)
销售流水表!C3:C1000、销售流水表!D3:D1000、销售流水表!J3:J1000数据区域需加上绝对引用,也就是选住公式部分的C3:C1000、D3:D1000、J3:J1000,按F4键,将相对引用区域,改为绝对引用,避免向下填充公式时,数据区域不断发生变化,使条件求和的区域发生引用错误。}
excel中最常用的30个函数:一、数字处理1、取绝对值=ABS(数字)2、取整=INT(数字)3、四舍五入=ROUND(数字,小数位数)二、判断公式1、把公式产生的错误值显示为空公式:C2=IFERROR(A2/B2,"")说明:如果是错误值则显示为空,否则正常显示。2、IF多条件判断返回值公式:C2=IF(AND(A2<500,B2="未到期"),"补款","")说明:两个条件同时成立用AND,任一个成立用OR函数。三、统计公式1、统计两个表格重复的内容公式:B2=COUNTIF(Sheet15!A:A,A2)说明:如果返回值大于0说明在另一个表中存在,0则不存在。2、统计不重复的总人数公式:C2=SUMPRODUCT(1/COUNTIF(A2:A8,A2:A8))说明:用COUNTIF统计出每人的出现次数,用1除的方式把出现次数变成分母,然后相加。四、求和公式1、隔列求和公式:H3=SUMIF($A$2:$G$2,H$2,A3:G3)或=SUMPRODUCT((MOD(COLUMN(B3:G3),2)=0)*B3:G3)说明:如果标题行没有规则用第2个公式2、单条件求和公式:F2=SUMIF(A:A,E2,C:C)说明:SUMIF函数的基本用法3、单条件模糊求和公式:详见下图说明:如果需要进行模糊求和,就需要掌握通配符的使用,其中星号是表示任意多个字符,如"*A*"就表示a前和后有任意多个字符,即包含A。4、多条件模糊求和公式:C11=SUMIFS(C2:C7,A2:A7,A11&"*",B2:B7,B11)说明:在sumifs中可以使用通配符*5、多表相同位置求和公式:b2=SUM(Sheet1:Sheet19!B2)说明:在表中间删除或添加表后,公式结果会自动更新。6、按日期和产品求和公式:F2=SUMPRODUCT((MONTH($A$2:$A$25)=F$1)*($B$2:$B$25=$E2)*$C$2:$C$25)说明:SUMPRODUCT可以完成多条件求和五、查找与引用公式1、单条件查找公式公式1:C11=VLOOKUP(B11,B3:F7,4,FALSE)说明:查找是VLOOKUP最擅长的,基本用法2、双向查找公式公式:=INDEX(C3:H7,MATCH(B10,B3:B7,0),MATCH(C10,C2:H2,0))说明:利用MATCH函数查找位置,用INDEX函数取值3、查找最后一条符合条件的记录。公式:详见下图说明:0/(条件)可以把不符合条件的变成错误值,而lookup可以忽略错误值4、多条件查找公式:详见下图说明:公式原理同上一个公式5、指定区域最后一个非空值查找公式:详见下图6、按数字区域间取对应的值公式:详见下图公式说明:VLOOKUP和LOOKUP函数都可以按区间取值,一定要注意,销售量列的数字一定要升序排列。六、字符串处理公式1、多单元格字符串合并公式:c2=PHONETIC(A2:A7)说明:Phonetic函数只能对字符型内容合并,数字不可以。2、截取除后3位之外的部分公式:=LEFT(D1,LEN(D1)-3)说明:LEN计算出总长度,LEFT从左边截总长度-3个3、截取-前的部分公式:B2=Left(A1,FIND("-",A1)-1)说明:用FIND函数查找位置,用LEFT截取。4、截取字符串中任一段的公式公式:B1=TRIM(MID(SUBSTITUTE($A1," ",REPT(" ",20)),20,20))说明:公式是利用强插N个空字符的方式进行截取5、字符串查找公式:B2=IF(COUNT(FIND("河南",A2))=0,"否","是")说明: FIND查找成功,返回字符的位置,否则返回错误值,而COUNT可以统计出数字的个数,这里可以用来判断查找是否成功。6、字符串查找一对多公式:B2=IF(COUNT(FIND({"辽宁","黑龙江","吉林"},A2))=0,"其他","东北")说明:设置FIND第一个参数为常量数组,用COUNT函数统计FIND查找结果七、日期计算公式1、两日期相隔的年、月、天数计算A1是开始日期(2011-12-1),B1是结束日期(2013-6-10)。计算:相隔多少天?=datedif(A1,B1,"d") 结果:557相隔多少月? =datedif(A1,B1,"m") 结果:18相隔多少年? =datedif(A1,B1,"Y") 结果:1不考虑年相隔多少月?=datedif(A1,B1,"Ym") 结果:6不考虑年相隔多少天?=datedif(A1,B1,"YD") 结果:192不考虑年月相隔多少天?=datedif(A1,B1,"MD") 结果:9datedif函数第3个参数说明:"Y" 时间段中的整年数。"M" 时间段中的整月数。"D" 时间段中的天数。"MD" 天数的差。忽略日期中的月和年。"YM" 月数的差。忽略日期中的日和年。"YD" 天数的差。忽略日期中的年。2、扣除周末天数的工作日天数公式:C2=NETWORKDAYS.INTL(IF(B2说明:返回两个日期之间的所有工作日数,使用参数指示哪些天是周末,以及有多少天是周末。周末和任何指定为假期的日期不被视为工作日。}

提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部如果将示例复制到空白工作表中,可能会更易于理解该示例。
 B
C
D
E
1
Array1
Array1
Array2
Array2
2
3
4
2
7
3
8
6
6
7
4
1
9
5
3
公式
说明(结果)
=SUMPRODUCT(B2:C4,D2:E4)
两个数组的所有元素对应相乘,然后把乘积相加,即3*2+4*7+8*6+6*7+1*5+9*3。(156)
数学函数SUMPRODUCT应用实例一、基本功能1.函数SUMPRODUCT的功能返回相应的区域或数组乘积的和。2.基本格式SUMPRODUCT(数据1,数据2,……,数据30)3.示例数据表A列 B列 C列 D列 E列数据1数据2数据3数据4数据52 3 4 12 105 5 6 5 209 7 8 #N/A 307 2 7 9 KL1 6 2 8 2⑴基本计算①区域计算要求:计算A、B、C三列对应数据乘积的和。公式:=SUMPRODUCT(A2:A6,B2:B6,C2:C6)计算方式:=A2*B2*C2+A3*B3*C3+A4*B4*C4+A5*B5*C5+A6*B6*C6即三个区域A2:A6,B2:B6,C2:C6同行数据积的和。返回值788。②数组计算要求:把上面数据表中的三个区域A2:A6,B2:B6,C2:C6数据按一个区域一个数组,计算对应数组积的和。把A2:A6,B2:B6,C2:C6分别作为一个数组,即A2:A6表示为数组-{2;5;9;7;1}B2:B6表示为数组-{3;5;7;2;6}C2:C6表示为数组-{4;6;8;7;2}公式:=SUMPRODUCT({2;5;9;7;1},{3;5;7;2;6},{4;6;8;7;2})=788注意:数组数据用大括号{}括起来。行数据之间用分号;分隔,如果是同一行的数据,用逗号,分隔。⑵可能出现的错误①编辑公式时,引用的数据区域大小不一致导致计算错误,返回值为#VALUE!。示例:在上面的数据表中,计算A列与B列数据区域积的和。公式:=SUMPRODUCT(A2:A6,B2:B5)或=SUMPRODUCT(A2:A6,B2:B8)都会返回错误值#VALUE!。所以在用SUMPRODUCT函数时,引用的数据区域大小要一致。②数据区域中有错误值时,计算出现错误值。示例:在上面的数据表中,计算数据区域A2:A6与D2:D6对应积的和。公式:=SUMPRODUCT(A2:A6,D2:D6)因为D2:D6中有错误值#N/A,所以公式返回值为错误值#N/A。③数据区域引用不能整列引用。示例:计算上面数据表中A2:A6和B2:B6区域对应数据积的和,正确公式为=SUMPRODUCT(A2:A6,B2:B6)则返回正确的计算值94。如果用公式=SUMPRODUCT(A:A,B:B)则返回错误值#NUM!。④数据区域有文本,计算中系统默认文本值为0。示例:在上面数据表中,计算A2:A6和E2:E6区域中对应数据积的和。公式=SUMPRODUCT(A2:A6,E2:E6)返回值是392,其中E5是文本KL,则A5*E5=0。二、用于多条件计数用数学函数SUMPRODUCT计算符合2个及以上条件的数据个数⑴数据表如下数据表所示:
 A
B
C
1
姓名
性别
职称
2
A

中一
3
B

中二
4
C

中一
5
D

中一
6
E

中一
7
F

中二
8
G

中二
9
H

中一
10
I

中一
11
J

中一
统计表E列 F列 G列中一 中二男女要求:统计上面数据表中男、女性中分别是中一、中二的人数。如下图片,A1:C11数据区域,在E1:G3区域统计男、女中中一和中二的人数是多少。⑵公式在数据统计区域中的F2单元格编辑如下公式:=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))向下复制到F3,向右复制到G3。⑶公式分解及分析①条件1——$B$2:$B$11=$E2在计算过程中,条件1是一个数组,返回多值,写成公式如下:=$B$2:$B$11=$E$2具体操作:选中10个连续的单元格,输入上述公式后,按Ctrl+Shift+回车键确认,返回10个逻辑判断值——TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE。这10个逻辑判断值构成一个新的由TRUE主FALSE组成的数组1。②条件2——$C$2:$C$11=F$1与条件1相同,是一个数组,返回多值,写成公式如下:=$C$2:$C$11=F$1具体操作:同样的方法,选中对应的10连续单元格,输入上述公式,按Ctrl+Shift+回车键确认,返回10个逻辑判断值——TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE。这10个逻辑判断值构成另一个新的由TRUE主FALSE组成的数组2。③($B$2:$B$11=$E2)*($C$2:$C$11=F$1)由新构成的数组1乘以数组2,即:=($B$2:$B$11=$E2)*($C$2:$C$11=F$1)={数组1*数组2}={ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE }={TRUE*TRUE;FALSE*FALSE;FALSE*TRUE;TRUE*TRUE;FALSE*TRUE;TRUE*FALSE; FALSE*FALSE;TRUE*TRUE;TRUE*TRUE; FALSE*TRUE}={1;0;0;1;0;0;0;1;1;0}其中,逻辑值TRUE与FALSE参与计算时:TRUE=1,FALSE=0,TRUE*TRUE=1,TRUE*FALSE=FALSE*TRUE=0,FALSE*FALSE=0因此{数组1*数组2}={1;0;0;1;0;0;0;1;1;0}由1和0构成了一个新的数组3。④=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))函数SUMPRODUCT对新的数组3中的所有数据求和。即:=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))=SUMPRODUCT({数组1*数组2})=SUMPRODUCT({数组3})=SUMPRODUCT({1;0;0;1;0;0;0;1;1;0})=4这里需要说明的是,公式编辑按照函数SUMPRODUCT的一般格式,可以编辑如下等效的公式:=SUMPRODUCT(($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1)函数SUMPRODUCT的作用是对数组($B$2:$B$11=$E2)与数组($C$2:$C$11=F$1))计算其乘积的和,即:=SUMPRODUCT(($B$2:$B$11=$E2)*1,($C$2:$C$11=F$1)*1)=SUMPRODUCT({ TRUE;FALSE;FALSE;TRUE;FALSE;TRUE;FALSE;TRUE;TRUE;FALSE }*1,{ TRUE;FALSE;TRUE;TRUE;TRUE;FALSE; FALSE;TRUE; TRUE;TRUE }*1)=SUMPRODUCT({1;0;0;1;0;1;0;1;1;0},{1;0;1;1;1;0;0;1;1;1})=SUMPRODUCT({1*1;0*0;0*1;1*1;0*1;1*0;0*0;1*1;1*1,0*1})=SUMPRODUCT({1;0;0;1;0;0;0;1;1,0})=4注意:TRUE*1=1,FALSE*1=1*FALSE=0,TRUE*0=0*TRUE=0 。数组中用分号分隔,表示数组是一列数组,分号相当于换行。两个数组相乘是同一行的对应两个数相乘。三、用于多条件求和。对于计算符合某一个条件的数据求和,可以用SUMIF函数来解决。如果要计算符合2个以上条件的数据求和,用SUMIF函数就不能够完成了。这就可以用函数SUMPRODUCT。用函数SUMPRODUCT计算符合多条件的数据和,基本格式是:SUMPRODUCT(条件1*条件2*……,求和数据区域)数据表
 A
B
C
D
1
姓名
性别
职称
课时
2
A

中一
15
3
B

中二
16
4
C

中一
14
5
D

中一
13
6
E

中一
18
7
F

中二
15
8
G

中二
16
9
H

中一
14
10
I

中一
17
11
J

中一
18
要求:计算男、女分别是中一或中二的总课时数。统计表F列 G列 H列 中一 中二男女在G2中编辑公式=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11))回车确认后向下向右复制公式到H3单元格。公式释义:性别区域$B$2:$B$11中满足条件男和职称区域$C$2:$C$11中满足条件中一的数据,通过判断计算后由1和0组成一个新的数据区域,这个新的数据区域再和课时区域$D$2:$D$11中的对应数据相乘后求和。公式对比:到此,对函数SUMPRODUCT用来计数和求和,试作一对比计数公式=SUMPRODUCT(($B$2:$B$11=$E2)*($C$2:$C$11=F$1))求和公式=SUMPRODUCT(($B$2:$B$11=$F2)*($C$2:$C$11=G$1),$D$2:$D$11)不难看出,求和公式在原来的计数公式中,在相同判断条件下,增加了一个求和的数据区域。也就是说,用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,另一个是用来求和的数据区域。四、用于排名次如下A列数据:A列 B列数据 名次56658965567890526090需要排出区域A2:A11中10个数据的名次。在B2中编辑公式:=SUMPRODUCT((A2<$A$2:$A$11)*1)+1向下复制到单元格B11。公式释义:用A2到$A$2:$A$11(用绝对引用$保证公式在向下复制时整个数据区域不发生变化)中进行比较,当A2<$A$2:$A$11成立时,则返回TRUE;如果A2<$A$2:$A$11不成立就返回FALSE。所以数组公式=A2<$A$2:$A$11返回一个由TRUE和FALSE构成的逻辑数组。把数组公式=A2<$A$2:$A$11构成的逻辑数组乘1,得到一个由0和1构成的新数组。SUMPRODUCT再对由0和1构成的新数组求和,表示在数据区域$A$2:$A$11中比A2大的数据个数。所以A2在数据区域$A$2:$A$11内排列的位次应该是比A2大的数据个数+1,即公式=数据区域$A$2:$A$11内比A2大的个数+1=SUMPRODUCT((A2<$A$2:$A$11)*1)+1公式向下复制,则依次对$A$2:$A$11中每一个数据重复进行上述判断求和,从而排出数据区域$A$2:$A$11中每一个数据的位次。很显然,对于数据区域$A$2:$A$11中相同的数,判断和计算结果是相同的,也就是排出来的位次相同。所以用SUMPRODUCT函数排出来的名次,与直接用RANK函数排出来的名次是一样的,有重复名次,但最大位次数不超过数据区域$A$2:$A$11中的总数据个数。如果希望排出的位次没有重复,而数据区域$A$2:$A$11中相同数据的位次按数据出现的先后顺序排位,可以用下面的公式:=SUMPRODUCT((A2<$A$2:$A$11)*1)+COUNTIF($A$2:A2,A2)公式向下复制即可。两种排名对比如下表所示:A列 B列 C列数据 名次重复顺序名次56 8 865 5 589 3 365 5 656 8 978 4 490 1 152 10 1060 7 790 1 2综上所述,对于多条件的计数或者求和,可以用数学函数SUMPRODUCT来比较方便的解决。在使用函数时,进行数据引用的单元格区域或数组应该大小一致,不能采取整列引用(形如A:A)。如果跨表使用函数SUMPRODUCT,与其它函数跨表引用数据一样,数据区域前面应该标明工作表名称。[color=#EE1D24,strength=3);]计数公式中最关键的是确定计数的判断条件。[color=#EE1D24,strength=3);]求和公式在原来的计数公式中,在相同判断条件下增加了一个求和的数据区域。[color=#EE1D24,strength=3);]用函数SUMPRODUCT求和,函数需要的参数一个是进行判断的条件,另一个是用来求和的数据区域。对于sumproduct使用过程中*1的解释说明sumproduct函数,逗号分割的各个参数必须为数字型数据,如果是判断的结果逻辑值,就要乘1转换为数字。如果不用逗号,直接用*号连接,就相当于乘法运算,就不必添加*1。已赞过已踩过你对这个回答的评价是?评论
收起推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}

我要回帖

更多关于 sumproduct多条件乘积 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信