使用 INDIRECT 比较多个 Excel 选项卡中的列

Comparing Columns in Multiple Excel Tabs using INDIRECT

我正在寻找一种非常广泛和动态的方式来检查两列中的内容是否相同(这些列位于两个不同的选项卡中)。内容因文本、数字和日期而异。

到目前为止,我尝试过的唯一方法是合并每列中的所有条目并进行比较。例如,我会将一列的所有条目附加在一起,并将其与其他附加列进行比较。不幸的是,我无法找到一种快速有效地附加列的方法。

我从 CONCATENATE 函数开始,但很快意识到此函数需要手动输入值,并且无法识别使用 INDIRECT 创建的范围。如果我可以将 INDIRECTCONCATENATE 一起使用,那么我将能够轻松地比较两列的值。

理想情况下,我想使用 INDIRECT 来创建范围,因为我需要比较数千列,而且我知道我正在比较的所有列的位置。

下面的示例非常基础,仅用于说明我的需求。我正在尝试将单元格 C7:C16 与位于 "Sheet1" 中的列进行比较,单元格 A1:A10.

另一个例子,CONCATENATE(D7:16) 会得到 abcdefghij 并将与 Sheet3!A1:A10.

中的 CONCATENATE 进行比较

需要:一种使用 INDIRECT 连接指定范围内的条目的方法,以便可以比较它们的正确性。

关于如何实现这一目标的任何意见?

您正在尝试使用连接来追加一个范围内的所有单元格。这是行不通的。连接需要单独的参数,而不是范围。

对于这样的比较,您需要一个数组公式。

Select 从 C7 到 C100 的所有单元格(或者数据最多的列需要多少行),然后输入此公式

=INDIRECT("'"&C&"'"&"!"&C&C&":"&C&C)

并用Ctrl-Shift-Enter

确认

所有单元格将立即填充,您将在前四行中看到您指定范围内的值。

将公式复制到 D 列。

在E7中输入公式

=C7=D7

然后抄下来。现在您可以使用 Countif 来计算 E 列中的 FALSE 值,并使用它来确定列是否相同。在 C6 中:

=IF(COUNTIF(E:E,FALSE),"not the same","identical")

您可以使用条件格式来突出显示 "FALSE" 值。

参考截图。