在excel中重构数据

在excel中重构数据,excel,vlookup,reorganize,Excel,Vlookup,Reorganize,我试图以一种特定的方式压缩数据。我希望每个列中出现的数字1都显示为1,而不管它在相应的列中与相应的站点一起出现了多少次。有些站点在原始数据中多次出现,我希望这样,如果原始数据中的列中有任何1,则每个唯一的站点中只有一个在结果数据表中显示,对应列的值为1 我想这应该是一个vlookup函数,但我已经尝试了很多不同的方法,我真的被困在这上面了 原始数据的图像和我正在尝试的操作: 谢谢假设您的数据集仅包含1或空白,此方法使用具有MAX函数的透视表。下面是一些细节,以防有人不知道透视表 在数据中选择一个

我试图以一种特定的方式压缩数据。我希望每个列中出现的数字1都显示为1,而不管它在相应的列中与相应的站点一起出现了多少次。有些站点在原始数据中多次出现,我希望这样,如果原始数据中的列中有任何1,则每个唯一的站点中只有一个在结果数据表中显示,对应列的值为1

我想这应该是一个vlookup函数,但我已经尝试了很多不同的方法,我真的被困在这上面了

原始数据的图像和我正在尝试的操作:


谢谢

假设您的数据集仅包含1或空白,此方法使用具有MAX函数的透视表。下面是一些细节,以防有人不知道透视表

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

单击已创建的数据透视表,应弹出“数据透视表字段”对话框。如果没有,请在透视表中单击鼠标右键,然后选择“显示字段列表”

将字段名Code、a、b和c向下拖动到下面相应的块中。将为您创建列下的值

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


考虑到数据透视表对于大量的列来说需要大量的工作,下面是一种基于公式的方法。将此公式放在单元格G2中,然后将其向下拖动以填充新表格

注意,您必须填充F列中的所有代码。如果以后添加了任何新代码,您必须保持更新。数据透视表的优点之一是它可以为您实现这一点

我知道你不会把这个放在这些单元格里,所以要做相应的调整。事实上,我会建议在另一张纸上

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

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


如果该计数大于0,则您知道至少找到了一个匹配项,并且If将返回1,否则返回0

1和空白是单元格内容的唯一选项吗?如果是这种情况,您可以使用pivot table with MAX函数而不是SUM函数。您还可以通过键入over将行标题名称从MAX of b更改为just b。如果您收到一条错误消息,说该字段已经存在,只需键入B,其中包含一个滞后的空格B,我应该加上,我正在处理一个非常大的数据集,其中有很多列。有没有比透视表更快的方法?对我来说,更改每个列的设置需要很多时间。谢谢,我已经发布了一个可能更容易的替代方法。