2015-04-21 65 views
1

不知道如何去做这件事(或者是否可以完成)。我在Excel中有三张工作表。第三个目前是空的。头两张表有过去10年的股票交易。一个约50个条目,第二个约70个。每个条目都有这样的列:股票代码,公司,数量,购买日期,购买价格,总购买$,卖出日期,卖出价格,总售价$,损失/收益。使用第一张和第二张纸张的特定值填充第三张纸张

我所希望做的是动态构建第三板(只是报告/观看),在有购买日期,但没有卖出日后的第一个两片只有条目。 IE:只显示当前股票持有量。因此,当一只股票被卖出并且一个卖出日期被输入到第一张表单之一时,它将从第三张表单中消失。

而持股并不都在列表的底部。例如,在表1中的50个条目中,第5,21,23,43,46,47和48行具有购买日期但没有销售日期。

在我搜索,我看到了,也许VLOOKUP函数将服务的,但我刚刚得知的今天,而不是很熟悉。

+0

使用VBA可以轻松完成。你觉得这是你能做的吗? – martin

+0

还有一些说明性问题:每张纸在您的纸上最多显示两次?也就是说,只有一个购买日期和可能的一个销售日期?这两张表是相同的(当然他们有不同的数据,但除此之外)? – martin

+0

你好马丁!我没有VBA经验,也不知道如何与Excel集成。 。 。是的,两张表是相同的(所有事情都考虑在内)只是包含不同的数据。而且,是的,每个条目(行)是唯一的,只出现一次 - 每个购买日期只有一个销售日期(没有部分销售)。 –

回答

0

在你的地方,我只想补充一栏,用公式每个片状

= countif($A$1:$A$50, A1) 

复制这个公式的第一行上,然后选择列,然后按Ctrl-d它在所有行复制。该公式将计算股票代码(我假设它在A列中)在表格上的次数。然后,您可以使用Excel内置过滤时这个数字为2

,只显示行如果确实需要将数据复制到第三片,上面是在任何情况下的第一步。关于第三个表,你可以使用这样的事情:

在第一行:

=MATCH(2,Sheet1!$F$1:$F$50,0) in column A 
=INDIRECT("Sheet1!A" & A1) in column B 

在第二行(然后复制下来,必要的,因为很多次):

=MATCH(2;INDIRECT("Sheet1!F" & SUM($A$1:A1)+1):$F$50;0) 
=INDIRECT("Sheet1!A" & A2+SUM($A$1:A1)) 

(假定在第一片被命名为Sheet 1中并且该COUNTIF列是F)

在A列,你将有股票符号与计数2(相对于拉斯的相对位置t位置),并在B列中使用indirect函数检索股票代码本身。

这种解决方案的缺点是,你将有每个符号两次(一次购买,一次卖出),这可以通过调整对Sheet1中的公式很容易固定。

相关问题