2017-09-13 63 views
0

表1: A栏:电子邮件 B栏:命名 柱C:动作VLOOKUP /索引2片材和多个值

表2 B栏:命名

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

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

回答

0

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

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

enter image description here

在我的例子我已经允许高达每名5个电子邮件/动作对,虽然该解决方案可以明显地适应数据的需求。

该解决方案使用“输入”表中的COUNTIF()函数来生成每个名称的出现编号。

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

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

获取用于在输出表中的电子邮件/动作对第一行(范围L2:U 2)正确的公式在我的图片是有点乏味和有解决此方式(基于使用COLUMN()函数来计算适当的帮手列号)。然而,解决方案的目的是构建一些东西,所以我保持简单。

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