0

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

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

原始数据的图像和我正在尝试做的事情:

谢谢

4

2 回答 2

1

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

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

原始数据

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

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

数据透视表

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

数据透视表设置

于 2018-08-21T23:23:37.910 回答
0

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

请注意,您必须填写 F 列中的所有代码。如果以后添加任何新代码,您必须保持更新。数据透视表的优点之一是它会为您执行此操作。

我知道您不会将其放入这些单元格中,因此请进行相应调整。事实上,我建议将其放在另一张纸上。

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

使用 COUNTIFS 的公式解决方案

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

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

如果该计数是>0,那么您知道至少找到了一个匹配项并且IF将返回1,否则0

于 2018-08-24T20:52:38.857 回答