我正在尝试将“品牌/型号/年份范围”组合表扩展为单独的年份行。我曾尝试寻找解决方案,但似乎没有一个适合我的用例,而且我不了解VBA的第一件事,因此需要在这里稍加掌握。
我正在使用Excel Office 365,我曾尝试通过PowerPivot找出一些问题并合并查询,但没有一个能够满足我的需要。
这是我正在处理的数据(A:D列)
Make Model From To
ACURA MDX 2001 2009
ACURA RDX 2008 2009
ACURA SLX 1996 1998
ACURA TL 1999 2008
ACURA TSX 2008 2009
所需的输出将是:
Year Make Model
2001 ACURA MDX
2002 ACURA MDX
2003 ACURA MDX
2004 ACURA MDX
2005 ACURA MDX
2006 ACURA MDX
2007 ACURA MDX
2008 ACURA MDX
2009 ACURA MDX
2008 ACURA RDX
2009 ACURA RDX
1996 ACURA SLX
1997 ACURA SLX
1998 ACURA SLX
...等等。
答案 0 :(得分:1)
使用Microsoft Query和具有两个命名范围MAKES和YEARS的源Excel文件(第二个是跨越期望范围的单列年份)
查询:
SELECT MAKES.Make, MAKES.Model, YEARS.Year
FROM `C:\Users\userName\Desktop\Test.xlsx`.MAKES MAKES,
`C:\Users\userName\Desktop\Test.xlsx`.YEARS YEARS
WHERE MAKES.`From` <= YEARS.Year AND MAKES.To >= YEARS.Year
答案 1 :(得分:1)
您可以使用Power Query执行此操作。将源数据(A:D)格式化为表格,然后类似:
let
Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
#"Added Year List" = Table.AddColumn(Source, "Year", each List.Numbers([From],[To]-[From]+1)),
#"Expanded Years To Rows" = Table.ExpandListColumn(#"Added Year List", "Year"),
#"Removed Other Columns" = Table.SelectColumns(#"Expanded Years To Rows",{"Year", "Make", "Model"}),
#"Changed Type" = Table.TransformColumnTypes(#"Removed Other Columns",{{"Year", Int64.Type}, {"Make", type text}, {"Model", type text}})
in
#"Changed Type"