在Excel中重组数据

问题描述 投票:0回答:2

我试图以特定的方式压缩数据。我希望每列中出现的数字1在相应的列中显示为1(无论它出现多少次)与相应的站点。一些站点在原始数据中出现多次,我想这样做,以便每个唯一站点中只有一个显示在结果数据表中,如果原始数据的列中有任何1,则相应列的值为1。

我认为这将是一个vlookup函数,但我已经尝试了很多不同的东西,我真的坚持这个。

原始数据的图像和我想要做的事情:

谢谢

excel vlookup reorganize
2个回答
1
投票

这假设您的数据集仅包含1或空白,并且此方法使用带有MAX函数的数据透视表。以下是有人不知道数据透视表的详细信息。

在数据中选择一个单元格并插入数据透视表。注意,我在A列中添加了一个标题,因为您需要在数据透视表中。

Original Data

单击创建的数据透视表,将弹出数据透视表字段对话框。如果没有,请右键单击“数据透视表”并选择“显示字段列表”。

将字段名称(代码,a,b和c)向下拖动到下面的相应块。 (将为您创建列下的值。)

Pivot Table

单击每个字段名称旁边的下拉箭头,然后选择“最大”。这会将其重命名为“Max of ...”。如果这让您感到困扰,那么您可以在“自定义名称”字段中键入所需的名称。请注意,它不会让您键入与字段名称相同的名称,例如a,但如果您在其前面放置一个空格,它将起作用。

Pivot Table Settings


0
投票

鉴于数据透视表对大量列的工作量很大,这里有一个基于公式的方法。将此公式放入单元格G2中,然后向下拖动以填充新表格。

请注意,您必须填充F列中的所有代码。如果稍后添加任何新代码,则必须保持更新。数据透视表的一个优点是它可以为您完成此任务。

我知道你不会把它放在这些细胞中,所以要相应调整。事实上,我建议将其放在另一张纸上。

=IF(COUNTIFS($A:$A,$F2,B:B,1)>0,1,0)

Formula solution using COUNTIFS

COUNTIFS($A:$A,$F2,B:B,1)

当A列中的值与您的代码$F2匹配且B列中的值等于1时,这将计算每次出现的次数。

如果该计数是>0,那么你知道至少发现了一个匹配,IF将返回1,否则0

© www.soinside.com 2019 - 2024. All rights reserved.