1

我有一列显示不同的用户和其他显示值的用户。每个用户可以有几个这样的值,它们可以重复。我知道如何计算同一列中的相同值,但我需要知道每个用户的相同值的数量。例如:

  USER            VALUE
 User1            100
 User1            300
 User1            100
 User1            200
 User1            300
 User1            100
 User1            100
 User1            400
 User2            100
 User2            100
 User2            100
 User2            400
 User2            100
 User2            200
 User2            200

然后它应该看起来像:

 USER          VALUE     COUNT
User1          100         4
User1          200         1
User1          300         2
User1          400         1

与第二个用户相同,依此类推。

编辑 - 对不起,我误解了我必须做的事情......我有更多的价值观,虽然我只需要专注于一个价值观,但显然我必须考虑所有这些:所以我需要的是以下内容:

  USER       V1      V2     V3     V4
  user1      A       C      A       B
  user2      B       D      A       B
  user1      A       F      A       C
  user3      C       A      C       D
  user3      D       B      A       A

user1 应该出现什么

   user1

    V1
    A       2
    B       0
    C       0
    D       0

    V2
    A       1
    B       0
    C       0
    D       0
    E       0
    F       1

    V3
    A       2
    B       0
    C       0
    D       0

    V4
    A       0
    B       1
    C       1
    D       0

有什么想法吗?无论如何感谢您的帮助!

4

2 回答 2

2

编辑

根据原始海报的新数据结构在下面添加了一个新答案。

因此,必须发生一些事情才能使其发挥作用。我建议将您的数据范围转换为表格。它使动态列和值引用变得容易。突出显示您的数据范围并按 CTRL+T。

现在说您的数据在单元格 A1:E6 中,就像您在上面一样

表 1=A1:E6=

USER    V1  V2  V3  V4
user1   A   C   A   B
user2   B   D   A   B
user1   A   F   A   C
user3   C   A   C   D
user3   D   B   A   A
  • 在单元格 F2 中输入
  • =IFERROR(INDEX(Table1[USER],MATCH(0,INDEX(COUNTIF($F$1:F1,Table1[USER]),0,0),0)),"-")
  • 这将返回“USER”列中的第一个唯一用户。要显示其余部分,只需向下拖动以将公式复制到 F2 下方的单元格中。
  • 然后在单元格 G2 中,我制作了 F2:F4 范围的下拉列表,这是所有唯一用户。
  • 在单元格 G3 中,我制作了一个范围 B1:E1 的下拉列表,其中包含所有标题 V1、V2 ...
  • 在单元格 G4 中输入
  • =IFERROR(INDEX(INDIRECT("Table1["&$G$3&"]"),MATCH(0,INDEX(COUNTIF($G$3:G3,INDIRECT("Table1["&$G$3&"]")),0,0),0)),"-")
  • 您可以将此公式复制到其下方的单元格,直到看到“-”,这意味着“V1”列不再有唯一值
  • 在单元格 H4 中输入
  • =COUNTIFS(Table1[USER],$G$2,INDIRECT("Table1["&$G$3&"]"),G4)

这一切都会给你一些看起来像这样的东西......希望它有所帮助,

唯一用户 唯一值 唯一计数 2

结束编辑

第一个答案...

这是使用单元格公式的方法。

  • A:A 中带有标题的用户范围
  • B:B 中带有标题的值范围
  • 范围 A:B 按用户排序,然后按值排序
  • 在 D1:F1 中键入新标题、唯一用户、唯一值、用户值计数。
  • 共有三个公式,每列一个。
  • D2 ==INDEX(A:A,ROW($F$2)+SUM(F$1:F1))
  • E2 ==INDEX(B:B,ROW($F$2)+SUM(F$1:F1))
  • F2 ==COUNTIFS(A:A,D2,B:B,E2)

有了第二行中的这三个,您现在应该能够向下拖动公式以填充列表,越来越多地显示唯一用户及其唯一值以及这些值的计数。如果公式返回零,则表示您位于唯一数据的末尾。

-Scheballs

编辑-错字,谢谢杰瑞

唯一用户唯一值唯一计数

于 2013-05-13T19:25:10.987 回答
1

如果您可以使用数据透视表,那么您可以这样做:

  • 选择范围(例如整个表格)
  • 前往Insert> Insert PivotTable>OK
  • 拖动字段UserValue在“行标签”框中,Value再次在Values框中。

经过一些格式化(Report Layout > Tabular FormDo not show subtotalsDesign数据透视表菜单的窗格中),你会得到这个:

在此处输入图像描述

然后,您可以在另一张表中复制/粘贴您需要的内容以进行更多数据操作。您不能直接修改数据透视表中的数据。


如果您已经准备好表格,User并且Values只需要获取计数,那么您可以COUNTIFS在单元格 C2 中使用。

=COUNTIFS(Sheet1!A:A,Sheet2!A2,Sheet1!B:B,Sheet2!B2)

此公式假定第一个工作表已命名Sheet1,并且包含要填充的表的工作表名为Sheet2

于 2013-05-13T16:36:33.960 回答