怎样汇总EXCEL中一个区域内(多行多列)特定条件下的数据合计

是这样的,要统计临时雇佣工人的出工情况用来核算工资,有两张表,一张是考勤表另一张是工资核算表,现在要在工资核算表中按人员姓名条件和日期条件核算汇总当月每人的出工天数,因为数据较多,所以不考虑在基础表手工汇总再引用或者数据透视表的办法,希望有大神指点可以直接以公式的方式引出。用了sumif,E4=SUMIF(考勤表!A:A,B4,考勤表!$D$4:$AA$53),但汇总出来全是零。。。。
我的意思是,能不能在工资核定表月天数那一列公式中按两个条件去汇总天数,比如条件1“石永梅”条件2“5月8日至5月31日”,汇总考勤表数据区域内(A2:AZ99)符合条件的天数合计。因为我后期还有6月7月8月,都在同一张表里,我不想再重设公式
而且出工有半天的,我用0.5天记录,用大神提供的COUNTA这个公式的话,好像只汇总了有效单元格数量,并未按天数相加,所以不适用。

首先,你的问题描述很简单,而且你的问题只给两个图,还是看不清那种。
你的出勤表是横向计算的,出勤了标记1,所以你为什么不核算有内容的单元格数量,以此来确定出勤的天数?
=counta("E4:H4")*结算工资追问

简单的办法我会,我是这样设想的,如果基础表出现个重复的姓名,可以直接在区域内按该工人的出工天数汇总,而不是只限于按行汇总,所以想找个一劳永逸的办法
而且用counta有个问题,他只汇总有效单元格数量,并非天数合计,我后面还有0.5天的数据,这样汇总会不对的

追答

可以使用 CountIF("E4:H4","1")+CountIF("E4:H4","0.5")*0.5
如果使用区域汇总,考虑到重名的问题,也就意味着你在考勤表中也必须增加一样的工号ID来辅助姓名校验。 另外,使用区域汇总的办法,会增加CPU消耗和内存占用。
看到你的其它回答评论,如果你要在原考勤表中增加新的日期,也意味着你核定表也要重新计算,哪来的一劳永逸?

温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-06-14
如果人名的顺序能对应上的话 可以直接在E4里输入
=counta(考勤表!D4:AA53) ,然后下拉追问

只能用=counta(考勤表!D4:AA4),不然会汇总整个区域内的合计,而不是某个人
其实我的意思是,能不能在公式中按两个条件去汇总天数,比如条件1“石永梅”条件2“5月8日至5月31日”,汇总数据区域内(D4:AN。。。)符合条件的天数合计。因为我后期还有6月7月8月,都在同一张表里,我不想再重设公式
而且出工有半天的,我用0.5天记录,用这个公式的话,好像只汇总了有效单元格数量,并未按天数相加

追答

确实,我再想想看

第2个回答  2018-06-14

b17:=SUM(INDIRECT("b"& MATCH(A17,$A$1:$A$9,0)):INDIRECT("N"& MATCH(A17,$A$1:$A$9,0)))

供参考,祝顺利。

追问

大神,为什么我把你的公式套进去,还是“0”?求解啊

追答

范围为D列到AA列;是考勤表求和。

注意比对

=SUM(INDIRECT("考勤表!D"& MATCH(A17,$A$1:$A$9,0)):INDIRECT("考勤表!AA"& MATCH(A17,$A$1:$A$9,0)))

=SUM(INDIRECT("考勤表!d"& MATCH(B3,考勤表!A:A,0)):INDIRECT("考勤表!AA"& MATCH(B3,考勤表!A:A,0)))

本回答被提问者采纳
相似回答