2016-02-12 91 views
0

我有一个Excel文件:如何填充根据不同值的多个列一列

+----+------------+ 
| ID | Order date | 
+----+------------+ 
| A | 1/1/2011 | 
| A | 1/3/2012 | 
| A | 1/8/2013 | 
| A | 1/20/2014 | 
| A | 1/23/2015 | 
| B | 1/1/2011 | 
| B | 1/20/2014 | 
| B | 1/23/2015 | 
+----+------------+ 

我想将它转换成一份报告,告诉我什么都几年没人购买的产品在以下格式:

+----+------------+-----------+------+------+------+-----+ 
| ID | Order date | 2011 2012 | 2013 | 2014 | 2015 |  | 
+----+------------+-----------+------+------+------+-----+ 
| A | 1/1/2011 | Yes  | No | No | No | No | 
| A | 1/3/2012 | No  | Yes | No | No | No | 
| A | 1/8/2013 | No  | No | Yes | No | No | 
| A | 1/20/2014 | No  | No | No | Yes | No | 
| A | 1/23/2015 | No  | No | No | No | Yes | 
| B | 1/1/2011 | Yes  | No | No | No | No | 
| B | 1/20/2014 | No  | No | No | Yes | No | 
| B | 1/23/2015 | No  | No | No | No | Yes | 
+----+------------+-----------+------+------+------+-----+ 

任何帮助非常感谢!谢谢!

回答

3

假设数据是在列A和B,具有标题行,和你有多年在顶部去,你可以(在C2处)使用此:

=IF(YEAR($B2)=C$1,"Yes","No")并拖动和向下。

enter image description here

非常简单。它从B列中取得YEAR,在当前列的标题行中检查年份,如果它们匹配则放入“是”。

注意,我们没有对ID做任何事情。也许这没关系,但我想你会因为某种原因将它们包含在你的示例中(可能不是),所以如果你想进一步减少它,请更新你的OP。

编辑:对于funsies,如果你只是想拖慎之又慎,添加一条语句,把它留空白是否有B中没有数据:=If($B2<>"",IF(YEAR($B2)=C$1,"Yes","No"),"")

+1

感谢布鲁斯。我曾想过同样的方法,但是想知道是否有更快的方式来填充数据。这证实了它! –

+0

@HimanshuAgrawal - 是的,我在想如果有更快的方法。我真的不这么认为 - 也许用VBA,但是我们真的只是加速一个快速的过程大概0.5秒,而这有点矫枉过正。除非上述内容真的妨碍了你的工作(换句话说,你希望它会更快),否则我认为这是最有效的解决方案。 – BruceWayne

+1

我同意布鲁斯......再次感谢! –

相关问题