示例数据:
Event Client
400 1
400 1
401 1
402 2
402 2
402 2
400 3
401 3
402 3
403 3
此表表示每行事件的一张票证。我正在尝试确定客户参加了多少活动(但我不在乎他们为活动购买了多少张门票)。我想要的结果是:
Client 1: 2 events
Client 2: 1 event
Client 3: 4 events
我可以编写一个Python脚本来确定这些信息,但我觉得可能存在一个我可以用来实现相同结果的Excel函数。
建议?
答案 0 :(得分:2)
突出显示整个数据集,然后按" alt"然后" a"然后" m"。这将删除重复的条目,然后countif(B:B,B1)将计算该特定客户编号的条目数。
Countif(B:B,1)
将适用于客户端1
Countif(B:B,2)
将适用于客户2
但是如果你引用他们将在(B1及以下)的单元格,然后向下拖动你的公式它将自动工作。
答案 1 :(得分:1)
使用Excel 2013可能最简单,但在使用数据透视表的Excel 2007中仍然很容易:
和一个公式为:
的辅助列=COUNT(E3:H3)
答案 2 :(得分:0)
如果有人对自动更新的解决方案感兴趣,只需在表格中列出唯一的客户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)
是count unique rows的一个技巧 - 它会产生一个数组SUMPRODUCT
用于避免使用数组公式