数据透视表 - 计算唯一值 - Excel 2010

时间:2013-09-19 14:57:15

标签: excel count pivot unique

我在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 个答案:

答案 0 :(得分:8)

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

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

并转向此专栏:

enter image description here

答案 1 :(得分:1)

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

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

= CONCATENATE(A2,"",B2)

这应该给你结果"第1周USER_A"对于第2行,"第1周USER_B"对于第2行,依此类推。

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

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

答案 2 :(得分:1)

Since you did not specify where your data is coming from.

I will assume your data is stored on an SQL database, one can use a partition count or a row_number partition count to achieved those results.

Completing the solution provided by Jerry, the 'Count of users' column can be achieve as follows from SQL

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

So this actually does a little bit more, first partitions the result set by distinct Week, orders the Users column and assigns a sequential id to every row on the partitions. We basically filter out the number 1 row in every partition.

If data does not come from SQL, disregard.

答案 3 :(得分:0)

在描述中我将使用你的照片表(我不允许发布我的照片)。 首先按排序表,然后按用户排序,然后在单元格D2中插入 = IF(AND(A3 = A2,B3 = B2),0,1) 即可。将公式复制到列中。在我使用的大学生表A1:P141736上,这个公式立即起作用。