如何在EXCEL或SQL中转置动态矩阵数据集

时间:2015-09-04 08:31:54

标签: mysql sql excel excel-vba transpose vba

我有以下问题,我无法找到最佳解决方案。

我需要使用这些参数来对齐每个ID的每个日期的小时数。我尝试在excel中进行转置,但我得到的结果是一个不会给出每个ID和日期行的结果。

小时工作单

年= 2015

ID | MON | TUES | WED | THU | FRI | SAT | SUN | WEEKNR

15 |  6  |  8   |  9  |  -  |  -  |  -  |  -  |  14
16 |  -  |  -   |  2  |  -  |  3  |  -  |  -  |  14
17 |  -  |  3   |  5  |  -  |  -  |  5  |  -  |  14
18 |  9  |  -   |  -  |  3  |  -  |  -  |  -  |  14

我希望将ID转换为日期,其值(小时)就像这样

ID | DATE      | HOURS

15 | 30-3-2015 |  6
15 | 31-3-2015 |  8
15 |  1-4-2015 |  9
16 |  1-4-2015 |  2
16 |  3-4-2015 |  3
17 | 31-3-2015 |  3
17 |  1-4-2015 |  5
17 |  4-4-2015 |  5
18 | 30-3-2015 |  9
18 |  2-4-2015 |  3

非常感谢任何建议/解决方案。 SQL或Excel公式(VBA)

1 个答案:

答案 0 :(得分:0)

这在sql-server中很容易(使用表函数)。然而,在MySQL中,我能想到的最简单的方法是:

select id, date (use date_ADD() to deduce this), mon as hours from table
union all
select id, date (use date_ADD() to deduce this), tues as hours from table
union all
select id, date (use date_ADD() to deduce this), wed as hours from table
union all
select id, date (use date_ADD() to deduce this), thu as hours from table
union all
select id, date (use date_ADD() to deduce this), fri as hours from table
union all
select id, date (use date_ADD() to deduce this), sat as hours from table
union all
select id, date (use date_ADD() to deduce this), sun as hours from table

然后根据需要排序。

编辑:如果您需要日期方面的帮助,请告诉我们。