垂直和水平过滤的最佳方法是?

时间:2013-05-29 20:07:57

标签: excel excel-vba vba

我有一个大型数据集,其中包含用户及其所属的组(它们可以在多个组中)。我目前有265个用户和94个组。我想找到显示此信息的最佳方式。现在我有一个非常大的spreedsheet向我显示这些信息,但我只能过滤组(列)以找出该组中的用户。理想情况下,能够过滤用户以查找用户所属的所有组也是很棒的。

这是我的工作表的样子: enter image description here

转置不适用于265个用户,我宁愿没有两个具有相同信息的电子表格。有任何想法吗? 感谢。

1 个答案:

答案 0 :(得分:4)

将您的数据存储在一个表中,其中包含两列“用户名”和“组名”,以及每个用户所属的每个组的一条记录。例如,前几行可能是:

User Name      Group Name
User 1         Group 1
User 1         Group 5
User 2         Group 5
User 2         Group 6

您可以在“用户名”上过滤此表,以查看特定用户所属的组,或“组名”以查看用户属于特定组的内容。

如果您希望以“矩阵”形式查看表格,请根据表格创建数据透视表。

作为将数据从当前格式转换为新格式的一次性练习,您可以:

  1. 创建新工作表。
  2. 在新工作表中,分别在A到F列的第一行中输入以下列标题:单元格编号行号列号单元格值用户名组名
  3. 在新工作表中,输入以下公式:单元格A2中的=ROW()-1,单元格B2中的=INT((A2-1)/94)+1,单元格C2中的=MOD(A2-1,94)+1,单元格中的=INDEX('Your Existing Data'!$E$2:$CT$266,B2,C2),{ {1}}在单元格E2中,=INDEX('Your Existing Data'!$A$2:$A$266,B2,1)在单元格F2中。这假定您的现有数据位于名为“您的现有数据”的工作表中,并按照评论中引用的图像进行布局。
  4. 将公式复制到第24911行(265 * 94 + 1)。
  5. 复制公式并用它们的值粘贴它们。
  6. 使用过滤器删除单元格值列中没有X的行。
  7. 删除A到D列。
  8. 如果需要,您还可以将公式添加到新工作表中,以根据全名查找现有数据中的名字,姓氏和电子邮件。