【问题标题】:Pivot Table - Count unique values - Excel 2010数据透视表 - 计算唯一值 - Excel 2010
【发布时间】:2013-09-24 17:48:32
【问题描述】:

我在 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 个用户)。

有人知道这是怎么做到的吗?

【问题讨论】:

标签: excel count pivot unique


【解决方案1】:

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

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

并以此列为中心:

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      =CONCATENATE(A2," ",B2)

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

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

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

      【讨论】:

        【解决方案4】:

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

        我假设您的数据存储在 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,则忽略。

        【讨论】:

          猜你喜欢
          • 2012-08-06
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-14
          • 1970-01-01
          • 2010-12-16
          • 1970-01-01
          相关资源
          最近更新 更多