将多个值列转换为新的键值对

时间:2015-11-20 03:15:08

标签: excel csv excel-formula transpose unpivot

我需要转换.csv文件的内容:

continent, region, country, 1990, 1991, 1992, 1993, ...
Africa, East Africa, Ethiopia, 12, 14, 15, 9, ...

为:

continent, region, country, year, value
Africa, East Africa, Ethiopia, 1990, 12
Africa, East Africa, Ethiopia, 1991, 14
Africa, East Africa, Ethiopia, 1992, 15
Africa, East Africa, Ethiopia, 1993, 9
...

有一堆行,所以这是不可能手工完成的。我知道必须有办法做到这一点,我真的只是有问题甚至解释我在做什么。它基本上是对表格的一部分进行转置而不是全部转换。

编辑:这是一整行数据的示例:

continent, region, country, country_abbr, economy, lat, long, 1990/91, 1991/92, 1992/93, 1993/94, 1994/95, 1995/96, 1996/97, 1997/98, 1998/99, 1999/00, 2000/01, 2001/02, 2002/03, 2003/04, 2004/05, 2005/06, 2006/07, 2007/08, 2008/09, 2009/10, 2010/11, 2011/12, 2012/13, 2013/14, 2014/15
Africa, Middle Africa, Angola, AO, 7. Least developed region, -12.5, 18.5, 50, 79, 78, 33, 77, 62, 71, 64, 85, 55, 50, 21, 57, 38, 15, 25, 35, 36, 38, 13, 35, 29, 33, 35, 39

1 个答案:

答案 0 :(得分:1)

不太清楚你的意思这些词在技术上还不存在所以我在第一年专栏之前移动了country列,暂时忽略了country左边的任何内容。详细描述here中的'Unpivot',并选择country列到去年的列,并且只填充与填充的行数相同的行。

结果表应为三列,每个国家/地区包含25行。第一列(“行” - 国家/地区名称)可能用于查找上面忽略的详细信息。