Google表格技巧:如何将Sheet1与Sheet2共有行复制到Sheet3?
无需宏,用内置函数即可实现需求
不需要编写宏,用Google表格的内置函数就能高效完成这个需求,推荐使用FILTER()+COUNTIF()的组合(比LOOKUP()更适合整行提取场景)。
具体实现步骤
在Sheet3的A1单元格输入以下公式(假设Sheet1和Sheet2的ticker都在A列,Sheet1数据范围为A到Z列,可根据实际情况调整):
=FILTER(Sheet1!A:Z, COUNTIF(Sheet2!A:A, Sheet1!A:A))
公式说明
COUNTIF(Sheet2!A:A, Sheet1!A:A):遍历Sheet1的每一行ticker,判断该ticker是否存在于Sheet2的A列中,存在返回1,不存在返回0FILTER(Sheet1!A:Z, ...):筛选出Sheet1中满足“ticker在Sheet2中存在”条件的整行数据,自动填充到Sheet3中
适配不同列的情况
如果ticker不在A列,比如Sheet1的ticker在B列,Sheet2的ticker在C列,只需调整公式中的列引用:
=FILTER(Sheet1!A:Z, COUNTIF(Sheet2!C:C, Sheet1!B:B))
额外优化
- 若担心格式不一致(如大小写、空格)导致匹配失败,可统一转换格式后再匹配,例如:
=FILTER(Sheet1!A:Z, COUNTIF(Sheet2!A:A, UPPER(Sheet1!A:A))) - 若没有匹配数据时不想显示
#N/A,可用IFERROR()处理:=IFERROR(FILTER(Sheet1!A:Z, COUNTIF(Sheet2!A:A, Sheet1!A:A)), "无匹配数据")
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

