2014-03-04 35 views
0

我有三张床单。 Sheet1包含一列数据(玩家名称),Sheet2包含相互关联的玩家名称数组,Sheet3当前为空白。我想知道在Sheet3中使用什么公式来在Sheet2中搜索Sheet2中的所有名称而不是,然后在Sheet 3中的列A中返回这些公式。数组中的名称可能是多余的,如果那很重要。在Sheet1中搜索范围/数组的公式以查找Sheet1中的值并返回Sheet2中但不在Sheet1中找到的值?

我不确定要使用的公式;索引/匹配似乎不符合法案,VLookup也不符合。

回答

3

您可以使用阵列相匹配,返回只是不会出现在Sheet1中的单元阵列(其它细胞将是空白):

=ArrayFormula(IF(ISNA(MATCH(Sheet2!A:E,Sheet1!A:A,0)),Sheet2!A:E,))

然后你到达这里的主要障碍,这是将2D范围转换为单列值。这可以通过以下方式实现:

=ArrayFormula(TRANSPOSE(SPLIT(CONCATENATE(IF(ISNA(MATCH(Sheet2!A:E,Sheet1!A:A,0)),Sheet2!A:E,)&CHAR(9)),CHAR(9))))

然后,如果你愿意,你可以在转换只是唯一值:

=ArrayFormula(UNIQUE(TRANSPOSE(SPLIT(CONCATENATE(IF(ISNA(MATCH(Sheet2!A:E,Sheet1!A:A,0)),Sheet2!A:E,)&CHAR(9)),CHAR(9)))))

+0

当我进入第一ARRAYFORMULA到A2上表Sheet 3,我得到“错误:检测到循环依赖。” – Top12Gun

+0

对不起,这里有一些非常严重的拼写错误: - /(fixed)。 – AdamL

+0

好的。在输入第三个公式时,它似乎只是简单地转换空白行。我假设这与'CHAR(9)'有关,但我不知道如何解决它;删除它们会产生解析错误。 – Top12Gun

相关问题