合并两个表,同时删除第一个表中的重复项

时间:2016-02-17 11:40:37

标签: sql excel excel-vba excel-formula excel-2010 vba

这是我在这里发表的第一篇文章,非常感谢您的帮助!我在这个网站上看了很多其他帖子,但是我找不到我的具体问题的答案。我尝试使用VLOOKUPINDEXMATCH,数据透视表等。但是它并没有按照我想要的方式运行。

背景资料:对于我的论文,我正在研究单一细分市场和多细分市场的资本成本差异。我的数据集包含两个表,一个包含公司段的SIC代码,另一个包含该段的相应销售额。这些表的问题是第一个表中有重复的SIC代码。我想从第一个表中删除重复项,同时计算第二个表中这些重复SIC代码的销售总和。

我的数据如下:

每个细分受众群的SIC代码和每个细分受众群的销售额: Input of SIC codes and sales per segment (one company for 20 years)

我想要做的是消除重复的SIC代码。如果我使用SIC代码更改表格,我还需要具有销售额的表格进行相应更改。但是,不应删除重复段的销售,而是将其添加到第一个重复段。我可以为一家公司手动计算,但对于1800家公司来说,这将非常耗时。 SIC代码和Sales的手动计算输出看起来像这样(所以我不需要合并表,输出仍然在两个不同的表中): Required output for the SIC codes table and Sales table (one company for 20 years

非常感谢!

2 个答案:

答案 0 :(得分:0)

这是解决问题的方法。分为两部分:获取每行中唯一的SIC代码列表,并总结出唯一的相应值。

第一部分: 这部分的一般逻辑:嵌套的INDEX函数。

假设您的输出表(包括标题A25:J45的范围)正好在主/输入表下方(包括标题A1:J21的范围)。假设只有20行数据,但您可以将公式拖动到尽可能多的行。

第一列应始终从输入表的相应第一列中获取值。 A26 =A2等等。

对于B26,请使用此公式=INDEX($A2:$J2,MATCH(0,INDEX(COUNTIF($A26:A26,$A2:$J2),0,0),0))

您可以将此公式拖到J45 /输出表的末尾。 (您可以在Excel中使用“评估公式”来理解逻辑的工作原理) 这应该为您的输出表填充每行的唯一SIC代码。

第二部分: 此部分的一般逻辑:SUM和数组

假设您的输出表(包括标题L25:U45的范围)正好在主/输入表下方(包括标题L1:U21的范围)。假设只有20行数据,但您可以将公式拖动到尽可能多的行。

在单元格L26(第一行,输出表格中最左边的元素)中,您需要一个数组公式(Ctrl + Shift + Enter)。如果您不知道读取的数组公式为here

L26 {=SUM(IFERROR($A2:$J2=A26,0)*IFERROR($L2:$U2,0))}的公式。

您需要在L26 =SUM(IFERROR($A2:$J2=A26,0)*IFERROR($L2:$U2,0))中仅输入此内容,然后点击Ctrl + Shift + Enter。 Excel将自己的大括号括在它周围。 将公式粘贴到输出表的其余部分。

基于Excel文件的参考屏幕截图。 Reference Image 1 Reference Image 2

答案 1 :(得分:0)

在数据标签Screenshot

上的excel 2010中有删除重复项功能