我已经忘记了我曾经知道的有关枢轴的任何事情,但这在我看来恰恰相反。假设我有一组项目A,B,C,D ......以及属性列表W,X,Y,Z。我在电子表格中有类似
的内容 A B C D
W 1 P 3 Q
X 5 R 7 S
Y T 2 U 4
Z D 6 F 7
其中项目B的属性X的值为“P”。为了做一些关于比较的统计数据,我想在表格之间进行更改,即
W A 1
X A 5
Y A T
Z A D
W B P
X B R
Y C U
Z C F
W D Q
X D S
Y B 2
Z B 6
Etc.
我可以轻松地在电子表格中编写嵌套循环宏来实现它,但是有一种简单的方法可以将它以所需的格式导入到mySQL中吗?如果数据采用第二种格式,那么获取所需统计信息的查询在SQL中很简单(并且电子表格中的公式也不是很难)。
由于显然没有“电子表格”标签,我使用了“excel”。 : - )
有很多问题乍一看看起来很相似,但我看到的五个问题都想丢弃其中一个指数(AD或WZ),即创建类似
W 1
W P
X 5
X R
答案 0 :(得分:1)
<强> EDITED 强>
您可以使用PowerQuery来移动表格。请参阅teylyn的回答以获得以下问题。我有Office 365,并且不需要先安装插件。该功能已经可用。
Convert matrix to 3-column table ('reverse pivot', 'unpivot', 'flatten', 'normalize')
在不使用VBA的情况下展开数据的另一种方法是使用PowerQuery,这是Excel 2010及更高版本的免费插件,可在此处找到:http://www.microsoft.com/en-us/download/details.aspx?id=39379
...
单击第一列的列标题以将其选中。然后,在“变换”功能区上,单击“未透视列”下拉列表,然后选择“取消透视其他列”。
...
OLD ANSWER
如果按原样导入电子表格,则可以运行查询以输出正确的格式。
对于固定的少量项目,您可以对每列使用UNION
。
SELECT attr, 'A' AS 'item', A AS 'value'
FROM sheet
UNION
SELECT attr, 'B' AS 'item', B AS 'value'
FROM sheet
UNION
SELECT attr, 'C' AS 'item', C AS 'value'
FROM sheet
UNION
SELECT attr, 'D' AS 'item', D AS 'value'
FROM sheet;