我有一个工作簿,其中有一个包含 14 列数据 (A - N) 的工作表。我想提取其中一些数据并将其存储在另一个工作簿中。
我只想提取 A、B、F、H、I、K 和 L 列;并且仅提取 H 列包含的行肝细胞癌。
我怎样才能做到这一点?
答案1
了解数据透视表是一个好主意,但您也可以使用数组公式来实现这一点。
将此公式放入您希望显示数据的第二个工作簿的 A 列的第一个单元格中:
=IFERROR(INDEX([Workbook1]Sheet1!A:A,SMALL(IF([Workbook1]Sheet1!$H:$H="HCC",ROW([Workbook1]Sheet1!$H:$H)),ROW())),"")
笔记:
- 将“
[Workbook1]Sheet1!A:A
”替换为实际的工作簿和工作表名称。最简单的方法是,输入公式的第一部分后,导航到另一个工作簿并单击 A 列顶部的“A”。 - 两个“ ”的情况也一样
[Workbook1]Sheet1!$H:$H
。您必须添加 $。 - 将最后一个“
ROW()
”更改为“ROW() - n
”,其中 n 比您输入公式的行号小 1。如果您在第 1 行,则无需更改它。 - 最后,这是一个数组公式,因此您需要使用CTRLShiftEnter而不是直接输入 Enter 。如果输入正确,公式栏中的公式将被花括号 {} 包围。
现在,将公式向下填充到您预计未来会有数据的范围。最后,复制选定的范围并将其粘贴到您想要从工作簿 1 中提取数据的所有其他列的第一个单元格中。当公式用完计算值时,它将填充空白。
下周,如果第一个工作簿中有更多(或更少)的数据行,数据仍然会被正确地复制到第二个工作簿。
怎么运行的:内部IF()
检查 H 列等于“HCC”的位置,并返回行号数组,其中行号为真,FALSE
否则返回“ ”。 SMALL()
获取该数组并按公式填充的顺序返回数字。INDEX()
使用这些数字返回 A 列中的相应值。最后,在填充行号不足的IFERROR()
地方插入空白以表示产生的错误。INDEX()
我希望这个帮助能祝你好运。