将Excel中符合条件的几行数据合并成一行,并将某一列的数值累加

比如:有三行数据
年龄 姓名 性别
第一行 1 李四 男
第二行 2 李四 男
第三行 2 张三 男
第四行 3 李四 男
我需要将姓名列为“李四”且性别列为“男”的这三行数据的年龄相加(即为6)合并到第一行,把其他行两行的数据删除。
合并出来的结果应为:
第一行 6 李四 男
第二行 2 张三 男

就是说,B、C两列为汇总条件,同时“李四 男”合为一行、“李四 女”合为一行、……。
假设源数据在Sheet1:
在Sheet2的B1输入
=INDEX(Sheet1!B:B,SMALL(IF(MATCH(Sheet1!$B$1:$B$100&Sheet1!$C$1:$C$100,Sheet1!$B$1:$B$100&Sheet1!$C$1:$C$100,)=ROW($1:$100),ROW($1:$100),4^8),ROW(1:1)))&""
数组公式,输入后先不要回车,按Ctrl+Shift+Enter结束计算,再向右和向下填充。
在Sheet2的A2输入
=SUMPRODUCT((Sheet1!B$2:B$100=B2)*(Sheet1!C$2:C$100=C2)*Sheet1!A$2:A$100)
回车并向下填充。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-12-28
干嘛用VBA呢?
选择 数据--〉排序,主要关键字选姓名,点确定
之后,数据--〉分类汇总,分类字段还是选择姓名,汇总项目在年龄前打钩

或者数据透视表,就没有自动删除功能了。
第2个回答  2012-12-28
直接用数据透视表做就是了,没必要用函数呢
第3个回答  2012-12-28
直接用数据透视表就能达到你的要求。
第4个回答  2012-12-28
直接用数据透视表就能达到你的要求。
第5个回答  2012-12-28
干嘛用VBA呢?
选择 数据--〉排序,主要关键字选姓名,点确定
之后,数据--〉分类汇总,分类字段还是选择姓名,汇总项目在年龄前打钩

或者数据透视表,就没有自动删除功能了。
第6个回答  2012-12-28
直接用数据透视表做就是了,没必要用函数呢
第7个回答  2012-12-28
直接用数据透视表就能达到你的要求。
第8个回答  2012-12-28
直接用数据透视表就能达到你的要求。
相似回答
大家正在搜