我正在尝试编写一个 excel 公式(或多个公式)来计算每个给定年份中某个值的第一次出现次数人在我的表格中。我在 Superuser 上搜索了相关问题,但无济于事。为了给你一些背景信息,每个人参加过一年或一年以上的考试。在每个考试年,他们都会得到一个或多个分数(表中的 1 到 9 值)。例如,A 在 2011 年获得了两个分数(5,3),2012 年获得了一个分数(2),2013 年获得了两个分数(4,1)。但是,我只对统计感兴趣多少年每个人参加过,我不在乎他们是哪一年的。我的数据如下:
Person 2011 2012 2013
A 5
A 3
A 2
A 4
A 1
B 7
B 6
C 1
C 9
C 4
C 2
D 5
这是我想要的结果:
Person Years
A 3
B 2
C 2
D 1
我尝试过很多复杂/低效的方法来实现这个结果,比如使用 SUM、COUNTIFS 和 VLOOKUP 的组合,但它总是计算所有值,而不是给定年份中某个值的第一次出现。我就是搞不清楚如何做到这一点,或者是否可以使用 excel 函数来实现。我不懂 VBA,但我怀疑这可能需要它。提前感谢您的帮助。
答案1
听起来像是一份工作数据透视表!
突出显示您的表格,然后转到“插入”→“数据透视表”,并按您想要的方式排列它。我会执行以下操作 -
答案2
感谢 Raystafarian 的评论,我能够详细回答我自己的问题。使用数据透视表,我选择了整个表格范围。在数据透视表字段列表对话框中,我添加了人然后将每一年(即 2011、2012、2013)拖到报告中,不勾选价值观字段。这样做会给我以下初始结果:
Row Labels Count of 2011 Count of 2012 Count of 2013
A 2 1 2
B 1 1
C 2 2
D 1
Grand Total 6 3 3
这太棒了,因为它不仅使我能够计算每行的值的数量,表明每个人参加了多少年,而且还告诉我每个人每年获得了多少分。
因此,在最后一步中,我只需在单元格 E2 中添加公式=COUNT(B2:D2)
,其中 A 列 = 行标签、B 列 = 2011 年计数、C 列 = 2012 年计数、D 列 = 2013 年计数、E 列 = 年份,即可得到以下结果:
Row Labels Count of 2011 Count of 2012 Count of 2013 Years
A 2 1 2 3
B 1 1 2
C 2 2 2
D 1 1
Grand Total 6 3 3