基于另一列计算列中的重复单元格
样本数据:
Event Client 400 1 400 1 401 1 402 2 402 2 402 2 400 3 401 3 402 3 403 3
此表代表每行事件的一张票。 我试图确定一个客户参加了多less个活动(但是我不在乎他们为一个活动购买了多less个活动)。 我试图得到的结果是:
Client 1: 2 events Client 2: 1 event Client 3: 4 events
我可以编写一个Python脚本来确定这些信息,但我觉得可能存在一个Excel函数,我可以使用它来实现相同的结果。
build议?
突出显示您的整个数据集,然后按“alt”,然后“a”,然后“m”。 这将删除重复的条目,然后countif(B:B,B1)将计数该特定客户端号码的条目数。
Countif(B:B,1)
将为客户端1工作Countif(B:B,2)
将为客户端2工作
但是,如果你参考他们将在(B1和以下)的单元格,然后拖下你的公式,它会自动工作。
可能是最简单的Excel 2013,但仍然容易在Excel 2007中使用数据透视表:
和一个配方的帮手列:
=COUNT(E3:H3)
如果有人对自动更新的解决scheme感兴趣,只需在表中列出唯一的客户端ID(例如=ROW()-1
公式),并使用以下公式计算唯一事件的数量:
=SUMPRODUCT( N(EC[Client] = [@Client]), 1 / COUNTIFS(EC[Event], EC[Event], EC[Client], EC[Client]))
哪里:
-
EC
是Event_Client表的名称,[@Client]
是Unique_Clients表当前行中的一个单元 -
N
是一个Excel函数来将布尔值转换为0/1 -
1/COUNTIFS(col1,col1, col2,col2)
是计算唯一行的技巧 – 它会产生一个数组 -
SUMPRODUCT
用于避免必须使用数组公式