如果在列中找到值,则 Excel 公式返回行

如果在列中找到值,则 Excel 公式返回行

我有一个 DNS 条目列表,需要对其进行排序才能获得良好的记录。

在 sheet1 中,我有一个原始数据的转储,第 1 列是一个区域 ID,它是一个数字。

在 sheet2 中,我有一列由我想保留的区域 ID 组成。

在 sheet3 上,我正在寻找一种方法来获取 sheet1 的第 1 列,以查看它是否与 sheet2 的第 1 列中的某个值匹配。如果匹配,那么结果应该是将整行放入 sheet 3 中。

这可能吗?数据示例如下:

工作表1- 4列

1   foo            A     IP_Address

1   foomaster    CNAME   IP_Address

392 jimmy          A     IP_Address

工作表2

在 column1 中是我想要的可接受区域 ID 的列表。

工作表3

如果 Sheet1 的第 1 列的值存在于 Sheet2 的第 1 列中,则粘贴 Sheet1 中的整行。

答案1

一种快速而肮脏的方法是使用=COUNTIF()如果找到值,则通过在右侧填充公式返回单元格 A1、B1、C1 等的值。

工作表 3,单元格 A1中,输入以下内容:

=IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A1),Sheet1!A1)

现在使用向右填充(Ctrl+ R)和向下填充(Ctrl+ D)功能将公式应用于所需数量的单元格,具体取决于 Sheet 1 中原始数据中预期的列数和行数。如果搜索成功,它将填充 Sheet 1 中该行的数据。

如果搜索不成功,该行将返回 FALSE。如果 Sheet 1 上的单元格没有数据,它将返回 0。如果需要,您可以使用以下公式返回空白文本 ("") 而不是 FALSE 或 0:

=IF(COUNTIF(Sheet2!$A:$A,Sheet1!$A1),IF(ISBLANK(Sheet1!A1),"",Sheet1!A1),"")

再说一遍 - 如果您拥有大量数据集,这种方法既快速又粗糙,并且会影响性​​能。通常,最好将原始数据放入数据库中 - 然后您可以使用数据透视表或简单的 SQL 查询以所需的格式提取所需的数据。

答案2

好的,但您需要第三张工作表来实现此技巧。在第三张工作表中,您需要将此公式向右向下拖动,以匹配sheet1您要查找的值所在的表格()的大小。Sheet2我们将在其中尝试查找所述值。

=index('sheet2'!A$1:A$1000,Match('sheet1'$D1:$D1000,'sheet2'!$A$1:$A$1000,0))

所以这就像一个可拖动的对象vlookup,你将在其中填充一个相同大小的新表sheet1,如果它找不到任何匹配项,它将返回#N/A,如果你想处理它,那么将它放在 IFERROR 中,就像这样

=IFERROR(index('sheet2'!A$1:A$1000,Match('sheet1'$D1:$D1000,'sheet2'!$A$1:$A$1000,0));"NO MATCH")

然后你需要过滤并删除“不匹配”条目。但这是我个人处理此类事情的公式。

也许由于语言环境和 Excel 版本的不同,, , ', etc; 语法对您来说并不相同。

干杯

相关内容