我有45k数据的数据表。以下格式。我需要做的是从个别号码和显示中获得前3个计数。
e.g。如果您参加61406142526,您应该只计算前3个内容。
Number Content
61406142526 DEW 858
61406142526 DEW 858
61406142526 DEW 858
61406142526 DEW 858
61410140808 DEW 10
61410140808 DEW 9
61410545997 DEW 10
结束显示应为
**DEV 858 = 3**
**DEV 10 = 2**
**DEV 9 = 1**
因为我是VBA的新手,所以任何人都可以指导我这样做。
答案 0 :(得分:0)
无需使用VBA。您可以按this way获取唯一列表。因此,当您的号码位于A2:A8
且内容位于B2:B8
时,请先分别在C2:C8
和D2:D8
获取唯一列表。
C2:C8
:{=IFERROR(INDEX($A$2:$A$8, MATCH(0, COUNTIF($C$1:C1, $A$2:$A$8), 0)),0)}
D2:D8
:{=IFERROR(INDEX($B$2:$B$8, MATCH(0, COUNTIF($D$1:D1, $B$2:$B$8), 0)),0)}
现在,您可以按n
公式获取large()
个最大数字。因此,当F2:F4
为{1; 2; 3}
时,您可以获得=LARGE($C$2:$C$8,$F2)
之后的第一大数字。假设这是G2
,然后向下拖动到G3:G4
,您现在获得了第二和第三大数字。
现在,您可以在C2:C8
搜索这些数字,并在D2:D8
检索相应的内容。通常可以使用index() & match()
公式。因此,请在=INDEX($D$2:$D$8, MATCH($G2,$C$2:$C$8,0))
键入H2
,然后向下拖动到H3:H4
。成品。示例文件为here。