Vheetup / index在2张和多个值上

时间:2017-09-13 07:18:57

标签: excel vlookup

表1: A栏:电子邮件 B栏:名称 C栏:行动

表2 B栏:名称

*表1中有名称,因此每个名称可能有不同的操作和电子邮件。 **表2中有一些名称不在表1中 ***有超过1000行。

如何返回sheet2中的值,以便我拥有电子邮件,常用名称和操作tgt。 Horinzontally。

1 个答案:

答案 0 :(得分:0)

首先,Sheet1中需要一个额外的列来计算每个名称的出现次数。其次,在Sheet2中,您需要在Sheet1中匹配名称及其出现。

下面的图片显示了(在单张纸上)您可能想要调整的安排。

enter image description here

在我的示例中,我允许每个名称最多包含5个电子邮件/操作对,尽管该解决方案显然可以根据您的数据要求进行调整。

解决方案使用“input”表中的COUNTIF()函数生成每个名称的出现次数。

在“输出”表中,5个辅助列标识与名称的第1,第2,...个匹配项匹配的输入表的行号,其中零表示不匹配。 SUMPRODUCT()函数生成此行号。其余列只是从输入表中选择适当的电子邮件/操作。

可以在“输出”中避免使用辅助列,但这会以G2=IF(G2>0,INDEX($B$2:$B$9,G2),"")中的单个单元格引用替换相应的SUMPRODUCT()表达为代价。 。 IF()是必要的,因为INDEX()函数在其第二个参数等于零时具有特殊行为。

在我的图片中获取输出表(范围L2:U2)中第一行电子邮件/操作对的正确公式有点单调乏味,并且有很多方法(基于使用COLUMN()函数计算适当的辅助列号)。但是,该解决方案旨在构建一个基础,因此我保持简单。

解决方案假设输入中的每个电子邮件/操作对将在输出中保持不同。因此,如果输入中的名称具有两个(或更多)具有公共电子邮件的电子邮件/操作对,则该解决方案不会将这两个操作与该公共电子邮件相结合。可以这样做,但它需要将附加信息添加到“输入”表 - 即与特定名称/电子邮件组合相关联的操作的发生。