繁体   English   中英

Excel或SQL Server-多列行

[英]Excel or SQL Server - Multiple columns to rows

在Excel 2010或Microsoft SQL Server 2012中:

我有一个表,该表在a列中有一个ID,然后在B到(C-MM)列中有位置。

我想让A列成为所有位置,然后B列成为ID。

到目前为止,我能想到的任何方法都是手动移调。

任何帮助将不胜感激!

图片已添加: 图片

这是一种在Excel中半自动的方法,它将在ID行是唯一的情况下起作用(如果不是唯一的,则需要先清除它)

  1. 假设原始数据工作表名为“原始数据”
  2. 将原始数据转换为表或命名范围-将其称为Table1
  3. 添加一个新的工作表,将其称为“普通数据”,并在单元格A1中键入“ ID”,在单元格B1中键入“ Location”
  4. 将来自“原始数据”的列A(这是ID的列表)中的数据(没有标题)复制到“普通数据”的列A中
  5. 将该公式添加到“常规数据”的第2列中,如下所示,但将“ X”更改为“原始数据”中数据的行数(不包括标题):= VLOOKUP(A2,Table1,ROUNDDOWN((ROW( )-2)/ X,0)+ 2,FALSE)
  6. 确保这看起来正确
  7. 几次将整个“ ID列表”追加到“普通数据”的第1列几次
  8. 确保它看起来仍然正确
  9. 如果您的位置数据扩展到MN列,那么您总共需要350个原始ID列表的副本。
  10. 将Excel保存到类似“使用公式归一化位置”
  11. 将Excel保存到类似“归一化位置数据”的位置
  12. 复制“普通数据”的粘贴值以仅保存值,无公式
  13. 保存工作表
  14. (可选)将“常规数据”过滤到包含空白位置数据的行,然后删除
  15. 现在可以将其导入数据库(如果您没有删除空格,则可以在导入后通过SQL删除它们)

为何起作用: Vlookup获取正确的原始数据行,然后公式根据行数动态调整为正确的列。

在SQL Server中将行透视成列

斯派特,谢谢你的信息。 我从未尝试过这样做,因为我终于找到了有关在SQL中使用UNPIVOT命令的信息。

链接在上方。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM