EXCEL 多条件去重复计数的问题 5

EXCEL里A列张三、张三、李四、李四……,B列有销售、销售、赠送、赠送……,C列王五、赵六……(这一列有重复的人名,并且有不知道的人名,不能指定)。现在需要统计张三、李... EXCEL 里A列 张三、张三、李四、李四……,B列有销售、销售、赠送、赠送……,C列王五、赵六……(这一列有重复的人名,并且有不知道的人名,不能指定)。现在需要统计张三、李四分别销售和赠送的C列客户的个数,并去除重复个数(若A、B、C列数据完全一致,要求统计个数为1)
麻烦哪位大大解答一下
展开
 我来答
凌文元LWY
高粉答主

2016-02-06 · 每个回答都超有意思的
知道大有可为答主
回答量:3.6万
采纳率:76%
帮助的人:1.3亿
展开全部

在F2单元格输入以下公式,然后向右向下填充公式

=SUMPRODUCT(($A$1:$A$10&$B$1:$B$10=$E2&LEFT(F$1,2))*(MATCH($A$1:$A$10&$B$1:$B$10&$C$1:$C$10,$A$1:$A$10&$B$1:$B$10&$C$1:$C$10,0)=ROW($1:$10)))

公式表示:将A列和B列连接起来后,符合等于E2与F1前两个字符的不重复的个数进行计数。

公式中:($A$1:$A$10&$B$1:$B$10=$E2&LEFT(F$1,2)实现了满足复合条件

MATCH($A$1:$A$10&$B$1:$B$10&$C$1:$C$10,$A$1:$A$10&$B$1:$B$10&$C$1:$C$10,0)=ROW($1:$10)   进行不重复数据的计数。

前后组合后,就是满足前面复合条件的不重复数据的计数。

 

详见附图

眯住眼串针
科技发烧友

2011-04-27 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:1.1万
采纳率:58%
帮助的人:3090万
展开全部
不用宏就得加辅助列
假设第一行为标题,数据在A2:B100区域内
将D列当作辅助列,D2输入公式
=SUMPRODUCT((A$2:A2=A2)*(B$2:B2=B2)*(C$2:C2=C2)) 下拉填充至第100行

张三销售C列客户的个数
=SUMPRODUCT((A$2:A$100="张三")*(B$2:B$100="销售")*(D$2:D$100=1))
张三赠送C列客户的个数
=SUMPRODUCT((A$2:A$100="张三")*(B$2:B$100="赠送")*(D$2:D$100=1))
其他的替换一下公式内的姓名就行了
追问
是不是有空白的行会产生错误? 假设我还要有一列为“型号”,也要做为条件之一。公式要怎么写?
追答
方法跟上面的差不多
公式就象是这个样子
=SUMPRODUCT((A$2:A$100="张三")*(B$2:B$100="销售")*(D$2:D$100="型号")*(E$2:E$100=1))
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
2724421
2011-04-27 · TA获得超过2493个赞
知道大有可为答主
回答量:1551
采纳率:71%
帮助的人:949万
展开全部
给你一个宏你可以把这张有重复的表整理一下删除完全重复的行.然后再做统计就容易多了

Sub 删除完全重复的行()
Dim Endcol, Endrow, Hang, HangNumer, X, Y As Integer
Dim Rng As Range
Dim RngXT As Range

Endcol = [iv1].End(xlToLeft).Column
Endrow = Range("A65536").End(xlUp).Row
For X = Endrow To 1 Step -1
AA = "A1" & ":A" & Endrow - 1
BB = Range("A" & Endrow)
Set Rng = Range(AA).Find(BB, LookAt:=xlWhole)
If Not Rng Is Nothing Then
Do
Hang = Rng.Address(RowAbsolute:=False, ColumnAbsolute:=False)
HangNumer = Mid(Hang, 2, Len(Hang) - 1)
For Y = 2 To Endcol
If Cells(X, Y) = Cells(HangNumer, Y) Then
If Y = Endcol Then

Cells(X, Y).EntireRow.Delete
Set Rng = Range(AA).FindNext(Rng)
CC = Rng.Address
Endrow = Range("A65536").End(xlUp).Row
End If
Else
Exit For
End If
Next
Loop While Not Rng Is Nothing And Rng.Address(RowAbsolute:=False, ColumnAbsolute:=False) <> Hang
End If
Next
End Sub
更多追问追答
追问
能不能不用宏?有简单点的方法吗?

主要是这个不懂!!! 谢谢了
追答
不需要你懂 你会用就行.对于重复的记录数据你留着也是垃圾记录.清理一下也是好的.对于你说的情况一般都是先去除重复记录然后才能统计处理.用宏是最简便的方法.因为你没有一个函数或者公式能做到整条记录去比对是不是完全一样.
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
355169804
2016-01-30 · TA获得超过277个赞
知道小有建树答主
回答量:474
采纳率:83%
帮助的人:82.2万
展开全部
啥问题,你倒是说呀。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
最美村墅
2016-01-01 · TA获得超过410个赞
知道小有建树答主
回答量:223
采纳率:0%
帮助的人:116万
展开全部
用VBA可解决所有问题
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
收起 更多回答(5)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式