这里有这样一个问题:给定一个(大型)电子表格,其中第 1 列是用户 ID,第 2 列是时间/日期对,第 3 列是课程代码,第 4 列是课程标题:我想生成一份报告,显示每门课程有多少唯一用户。也就是说,鉴于用户 12345 可能打开了同一门在线课程六次,因此有六行,我希望我的报告仅显示该课程 ID 下的用户 12345 一次。
我相信一种方法是创建另一张表,其中的一列由课程代码、用户名和课程标题组成,全部组合成一个字符串,然后我可以从中消除重复的值,但我想知道是否有更好的方法。
答案1
如果您使用的是 Microsoft 2007 或 2010,则可以使用数据>删除重复项,并消除连接列的步骤。
在 Excel 2003 中,您可以使用数据>过滤器>高级过滤器>仅唯一值来显示您选择的列中具有唯一值的行。
您还可以创建一个简单的数据透视表来执行此操作。
答案2
在第 5 列(E)中,将以下函数放在该列的最下方,您可能需要调整引用。
=1+COUNTIFS(C:C,C1)-COUNTIFS(A:A,A1,C:C,C1)
然后按 C 列升序对整个图表进行排序,然后按 E 列升序排序。这很重要。然后将 C 列和 D 列中的所有数据粘贴到 G 列和 H 列。仅消除 G 列和 H 列中的重复项。然后在列中我放置此函数:
=VLOOKUP(G1,C:E,2,FALSE)
这将生成一个图表,其中显示每个课程和唯一用户的数量。如果您愿意,可以将 G 列到 I 列部分放在新工作表上,只需确保引用对齐即可。
我认为这就是你想要的,但我不喜欢它,我只会按照你最初的建议复制到新工作表并删除重复项。或者更好的是:如果这是一个重复出现的问题,请创建一个数据库。Microsoft Access 使这变得非常容易。