我有一个 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; 语法对您来说并不相同。
干杯