5

我在 excel 2010 中有一个基于网络输出的数据透视表。我想统计每周在网络上发布的用户的唯一值。

我发现了这个主题:Simple Pivot Table to Count Unique Values,它将为我的数据添加一个额外的列。对我来说,问题是,我每周需要独特的价值观,而不是整张桌子。

示例输入:

week 1 USER_A message1
week 1 USER_B message2
week 1 USER_A message3
week 2 USER_A message4
week 2 USER_B message5
week 2 USER_C message6

excel实际上做的是当我要求计数时,它是否在第 1 周和第 2 周都给出 3 作为计数。我需要第 1 周的计数为 2(因为有 2 个用户)和周计数2 为 3(因为有 3 个用户)。

任何人都知道如何做到这一点?

4

4 回答 4

8

您可以创建一个新列并添加公式:

=IF(COUNTIFS($A$2:A2,A2,$B$2:B2,B2)>1,0,1)

并以此列为中心:

在此处输入图像描述

于 2013-09-19T16:14:37.977 回答
1

不是另一种选择是连接两列然后删除重复项吗?使用 Jerry 帖子中的图片,步骤如下:

  • 插入 D 列
  • 在 D 列中,输入公式:

=连接(A2,“”,B2)

这应该为您提供第 2 行的结果“第 1 周 USER_A”,第 2 行的“第 1 周 USER_B”,依此类推。

  • 在“数据”选项卡下,选择“突出显示重复项”
  • 仅选择 D 列,然后单击确定

您现在应该能够只计算 A 列和 B 列的唯一实例。这就是我过去所做的;希望我没有以完全错误的方式做这件事!:-)

于 2014-05-29T19:02:18.637 回答
1

由于您没有指定数据的来源。

我将假设您的数据存储在 SQL 数据库中,可以使用分区计数或 row_number 分区计数来实现这些结果。

完成 Jerry 提供的解决方案,'Count of users' 列可以从 SQL 中实现如下

case when row_number() over (partition by Week order by Users) = 1 then 1 else 0 end as [Unique?]

所以这实际上做了更多的事情,首先按不同的周对结果集进行分区,对用户列进行排序,并为分区上的每一行分配一个连续的 id。我们基本上过滤掉每个分区中的第 1 行。

如果数据不是来自 SQL,则忽略。

于 2017-06-14T10:27:12.907 回答
0

在描述中,我将使用你的桌子的图片(我不允许张贴我的图片)。首先按Week排序表格,然后按Users排序,然后在单元格 D2 中插入=IF(AND(A3=A2,B3=B2),0,1)。将公式复制到列中。在我使用的一张大学生表 A1:P141736 上,这个公式立即生效。

于 2013-10-02T01:35:23.813 回答