Excel 公式在同一个工作簿中,但 3 张工作表需要比较 2 张工作表上的一列,并将第 3 列的数字放入工作表 3 中

Excel 公式在同一个工作簿中,但 3 张工作表需要比较 2 张工作表上的一列,并将第 3 列的数字放入工作表 3 中

我的 Excel 工作簿中有 3 张工作表,我想比较工作表 1 中的 C 列和工作表 2 中的 C 列,如果在任何地方都存在相同的数字,那么我希望将工作表 2 中的 G 列的值放入工作表 3 中的 G 列中

答案1

假设你有 sheet1:

a b  1
a b  2
a b  3
a b  4
a b  5

和 sheet2:

a b  6  ... x
a b  2  ... gg
a b  7  ... x
a b  5  ... zz
a b  8  ... x

因此,在 Sheet3 上您想要(有或没有列 A..F)

a b  2  ... gg
a b  5  ... zz

最简单的解决方案,但需要一些手动操作:

在 Sheet2 中添加一列,使用以下公式(假设标题在第 1 行)

=IF(ISERROR(MATCH(C2,Sheet1!$C$2:$C$100000,0)),FALSE,TRUE)

向 sheet2 添加一个过滤器并过滤 TRUE。复制并粘贴到 sheet3

仅使用公式(无需手动复制和粘贴):

Excel 中并不存在公式“如果为真则复制”。它要求具有公式的单元格可以更改另一个单元格中的值(而不仅仅是其自身的值)。这与电子表格的工作方式背道而驰,会导致各种令人讨厌的循环逻辑和缓慢的计算。想象一下,您正在将公式输入要复制到的单元格(Sheet3!G2...)。此公式可以查找 Sheet2!G 列,参考它的价值(但不是硬拷贝)。

因此,您可以在 Sheet3!G2 中输入:

=IF(ISERROR(MATCH(Sheet2!C2,Sheet1!$C$2:$C$100000,0)),"",Sheet2!G2)

您将获得比较数据,但也有许多未发生匹配的空行。您可以再次添加过滤器以删除空白行。

要完全使用公式解决这个问题,您必须对 Sheet2 中的匹配项进行编号,如下所示:

a b  6  ... x  0
a b  2  ... gg 1
a b  7  ... x  1
a b  5  ... zz 2
a b  8  ... x  2

在 Sheet2 的 H 列中使用此公式,从 H2 开始:

=IF(ISERROR(MATCH(C2,Sheet1!$C$2:$C$100000,0)),IF(ROW() = 2,0,H1+1), IF(ROW() = 2,1,H1+1))

然后使用 Sheet3 的 G 列中的 INDEX、MATCH 和 ROW 函数查找这些匹配项,从 G2 开始:

=INDEX(Sheet2!$G$2:$G$100000,MATCH(ROW()-1,Sheet2!$H$2:$H$100000,0))

相关内容