从某些列中提取数据,并且仅从其中一列具有特定值的行中提取数据

从某些列中提取数据,并且仅从其中一列具有特定值的行中提取数据

我有一个工作簿,其中有一个包含 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())),"")

笔记:

  1. 将“ [Workbook1]Sheet1!A:A”替换为实际的工作簿和工作表名称。最简单的方法是,输入公式的第一部分后,导航到另一个工作簿并单击 A 列顶部的“A”。
  2. 两个“ ”的情况也一样[Workbook1]Sheet1!$H:$H。您必须添加 $。
  3. 将最后一个“ ROW()”更改为“ ROW() - n”,其中 n 比您输入公式的行号小 1。如果您在第 1 行,则无需更改它。
  4. 最后,这是一个数组公式,因此您需要使用CTRLShiftEnter而不是直接输入 Enter 。如果输入正确,公式栏中的公式将被花括号 {} 包围。

现在,将公式向下填充到您预计未来会有数据的范围。最后,复制选定的范围并将其粘贴到您想要从工作簿 1 中提取数据的所有其他列的第一个单元格中。当公式用完计算值时,它将填充空白。

下周,如果第一个工作簿中有更多(或更少)的数据行,数据仍然会被正确地复制到第二个工作簿。

怎么运行的:内部IF()检查 H 列等于“HCC”的位置,并返回行号数组,其中行号为真,FALSE否则返回“ ”。 SMALL()获取该数组并按公式填充的顺序返回数字。INDEX()使用这些数字返回 A 列中的相应值。最后,在填充行号不足的IFERROR()地方插入空白以表示产生的错误。INDEX()

我希望这个帮助能祝你好运。

相关内容