我不知道如何正确描述我需要做什么,所以我举个例子。一位同事在 Excel 中有一组数据,如下所示:
Col A Col B Col C
aaaaa aaaaa bbbbb
bbbbb ccccc ccccc
ccccc ddddd eeeee
最终结果应该是这样的:
Col A Col B Col C
aaaaa aaaaa
bbbbb bbbbb
ccccc ccccc ccccc
ddddd
eeeee
甚至:
Col A Col B Col C
aaaaa Yes Yes No
bbbbb Yes No Yes
ETC。
(如果有帮助的话,列是蛋白质提取方法,字母是蛋白质 ID - 我们需要确定哪些蛋白质是通过哪种方法提取的)
我的同事正在手动执行此操作,但有足够的数据,因此自动化操作将非常有帮助。
Excel 中是否有公式可以自动执行此操作?
答案1
这不是一个“交钥匙”解决方案,但如果您有数千行,这可能会为您节省一些精力。(在文件的临时副本中执行此操作,以防万一出现问题或崩溃,因为“撤消”并不总是有效。)注意:此过程是为 Excel 2007 开发的(但我已在 Excel 2013 中重新验证了它)。
首先,将所有数据复制到临时列中;我们称之为 V。请注意,您必须从 A 列复制标题,否则在单元格 V1 中放置一些虚拟值。
现在转到“数据”选项卡,“排序和过滤”组,然后单击“高级”:
这将打开“高级过滤器”对话框:
确认“列表范围”在 V 列中显示您的数据。选择“复制到另一个位置”和“仅唯一记录”。在“复制到”字段中输入“W1”——或者单击该字段,然后单击 W1(有几种方法可以获得相同的结果)。单击“确定”。您应该得到如下结果:
即您的唯一数据值的列表。您可能需要对 W 列进行排序。
现在=NOT(ISNA(VLOOKUP($W2,A$2:A$4,1,FALSE)))
输入 X2( 4
用包含数据的最后一行的编号替换),然后向下拖动/填充以匹配 W 列(即,原始数据中每个唯一值一行)并向右移动到 Z 列(即,数据中的列数)。
这将为您提供与问题中所需结果的第二种形式相对应的真值表(但使用“TRUE”和“FALSE”而不是“是”和“否”)。例如,
- X2 为 TRUE,因为 A 列包含“aaaaa”,
- X3 为 TRUE,因为 A 列包含“bbbbb”,
- Y2 为 TRUE,因为 B 列包含“aaaaa”,
- Y3 为 FALSE,因为 B 列不包含“bbbbb”等。
删除 V 列,并随意修改标题(第 1 行)。如果您不想在电子表格中保留 AC 列,请复制 WZ 列并粘贴值。
关于公式的一些解释:上面我给出的公式用于第 X 列,
对应于 A 列。 因为我使用了,所以这是对 W 列的绝对引用, 当公式被拖拽/填充到行时, $W2
它将引用单元格Wn
n任何列的。相比之下,A$2:A$4
是对第 2 行至第 4 行的绝对引用,但对 A 列的相对引用。当将公式拖到 Y 列时,此引用将自动更改为 B$2:B$4
。当将公式拖到 Z 列时,此引用将自动更改为 C$2:C$4
。