划分信息

划分信息

我有一个 Excel 文件,其中包含几行(约 1k)。每行描述一些行动一个用户(我的错)不同的操作有不同的行。像这样

      action              user
      ===============     =====
r1    lore ipsum 1        user1
r2    lore ipsum 2        user1
r3    lore ipsum 3        user2
r4    lore ipsum 1        user2
r5    lore ipsum 2        user3
r6    lore ipsum 4        user1
r7    lore ipsum 5        user1

正如你所看到的,我已经多种的用户 1 的操作。我只需要单身的行显示用户 1 的所有操作,其他行显示其他用户的其他操作(与用户 1 的操作方式相同)witohut重复在“用户”栏上。类似这样的:

      action              user
      ===============     =====
r1    lore ipsum 1        user1
      lore ipsum 2        
      lore ipsum 4        
      lore ipsum 5        
r2    lore ipsum 3        user2
      lore ipsum 1        
r3    lore ipsum 2        user3

我该怎么做?非常感谢

答案1

以下是您的数据存储方式的示例:

数据

选择表格中的一个单元格,就像上面的图片一样。然后转到菜单“插入”>“数据透视表”。它将选择您的所有数据并提示如下对话框:

新的数据透视表

抱歉!我的 Excel 是葡萄牙语的,但我相信您可以看懂图片。

单击“确定”。它将创建一个新的 Sheet,如下所示:

新工作表现已创建

右侧会出现一个菜单:

数据透视表字段

user将 拖放到action左下方框中的行标签上。

行标签

结果如下:

最后结果

看看这是否令您满意,或者您是否想要其他东西。我们现在可以做一些事情,但也许这就是需要的,我不知道。

抱歉这么晚才回答,我正在上班;)

答案2

在现有表格的右侧创建一个新表格,将用户放在左侧,然后为每个可能的操作创建一列。这是记录谁做了哪些操作的唯一可靠方法。

接下来在现有表格的左侧创建一个包含以下公式的列:

=UserColumnCell&ActionColumnCell
i.e. =$C2&$B2

这将为您提供一个值,您可以使用它在新表中创建 VLOOKUP,例如User1Lore ipsum 1

返回到新表格并在最左侧的“操作”列的第一个单元格中添加以下公式:

=IF(ISERROR(VLOOKUP(UserColumnCell&ActionColumnTitle),FirstTableRange,2,FALSE)),0,1)
i.e. =IF(ISERROR(VLOOKUP(E2&F1,$A$2:$C$1000,2,FALSE),0,1)

因为我们没有修复公式前半部分的单元格引用,所以您现在可以为每个操作拖动公式,并为每个用户向下拖动公式,它会进行相应的调整。

最后,复制我们刚刚创建的所有数据,并将其粘贴回自身,将粘贴类型设置为值。您可以知道销毁原始表格。



显然,如果您想要为正在执行的操作使用不同的标志,则更改 1 和 0。例如,如果您想要一个小勾号,您可以保持原样并使用条件格式“基于其值的单元格”设置为勾号图标集,或者您可以简单地将每个操作列的字体设置为 Marelett 并替换为0,1Marlett中的勾号。 如果您使用表格,则可以使用表格引用来简化此过程。其中现有表格为 Table1,新表格为 Table2:"","a"a



表 1 的第 1 列中的公式为:

=[@User]&[@Action]

然后,表 2 中每个操作列的公式将是:

=IF(ISERROR(VLOOKUP([@User]&Table2[[#Headers],[lore ipsum 1]],Table1,2,FALSE)),0,1)

尽管如果您这样做,一旦您将公式拖过来,您就必须重置 [@User] 引用,因为它会漂移。



那么这是做什么呢?
以防万一您没有使用过 VLOOKUP:IF 语句可以决定我们输出的内容,而不仅仅是返回 VLOOKUP 找到的值。

ISERROR 将返回 true 或 false,具体取决于 VLOOKUP 是否找到任何内容

VLOOKUP 查找我们构建的连接公式,看它是否可以在该列中找到与表 2 中的该列和行组合相关的用户和操作的组合相匹配的结果,如果找到就返回它,这会使 ISERROR 返回为 false,如果没有找到任何内容则出错,使 ISERROR 返回为 true。

ISERROR 的输出为 TRUE 或 FALSE,如果为 TRUE,则表示没有匹配,因此如果您希望显示该用户未完成该操作,我们会保留 0 或空白。如果返回 FALSE,则表示用户已完成该操作,因此它会返回 1 或 表示a勾选或您希望的任何值。



编辑
这个答案是基于您想要重新设计表格。如果您想保持表格原样,那么我会向您指出 Math 关于数据透视表的评论,因为如果您需要保留原始表格结构但以不同的方式呈现数据,那么它们将是实现此目的的最佳方法。

相关内容