Excel 将 Make/Model/Year 范围转换为单个 Year/Make/Model 行
Excel Convert Make/Model/Year Range into Individual Year/Make/Model rows
我正在尝试系统地将 table 的 Make/Model/Year 范围组合扩展到单独的年份行中。我已经尝试寻找解决方案,但 none 似乎符合我的用例,而且我不知道关于 VBA 的第一件事,所以在这里需要一点帮助。
我正在使用 Excel Office 365,我尝试使用 PowerPivot 解决问题并合并查询,但 none 将完成我需要的。
这是我使用的数据(列 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
...等等
使用 Microsoft Query 和具有两个命名范围 MAKES 和 YEARS 的源 Excel 文件(第二个是跨越所需范围的 single-column 年)
查询:
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
您可以使用 Power Query 执行此操作。将您的源数据 (A:D) 格式化为 table,然后是:
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"
我正在尝试系统地将 table 的 Make/Model/Year 范围组合扩展到单独的年份行中。我已经尝试寻找解决方案,但 none 似乎符合我的用例,而且我不知道关于 VBA 的第一件事,所以在这里需要一点帮助。
我正在使用 Excel Office 365,我尝试使用 PowerPivot 解决问题并合并查询,但 none 将完成我需要的。
这是我使用的数据(列 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
...等等
使用 Microsoft Query 和具有两个命名范围 MAKES 和 YEARS 的源 Excel 文件(第二个是跨越所需范围的 single-column 年)
查询:
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
您可以使用 Power Query 执行此操作。将您的源数据 (A:D) 格式化为 table,然后是:
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"