Excel中A3:F6是带表头的典型表格,但上面多了额外的两行表头:
|---|---------|---------|-------------|-------------|----------|----------|
|   | A       | B       | C           | D           | E        | F        |
| 1 |         |         | Actuals | Actuals | Plan | Plan |
| 2 |         |         | FY20        | FY21        | FY20     | FY21     |
| 3 | Country | Owner   | 1/1/2020    | 1/1/2020    | 1/1/2020 | 1/1/2020 |
| 4 | France  | Richard | 100         | 150         | 80       | 160      |
| 5 | France  | Martin  | 120         | 140         | 130      | 140      |
| 6 | France  | Pierre  | 50          | 100         | 50       | 80       |
现在要将典型表格连同额外的两行表头同时进行列转行:
|----|-------------|-----------|-------------|----------|----------|-----------|
|    | A           | B         | C           | D        | E        | F         |
| 9  | Country | Owner | Version | Year | Date | Value |
| 10 | France      | Richard   | Actuals     | FY20     | 1/1/2020 | 100       |
| 11 | France      | Richard   | Actuals     | FY21     | 1/1/2020 | 150       |
| 12 | France      | Richard   | Plan        | FY20     | 1/1/2020 | 80        |
| 13 | France      | Richard   | Plan        | FY21     | 1/1/2020 | 160       |
| 14 | France      | Martin    | Actuals     | FY20     | 1/1/2020 | 120       |
| 15 | France      | Martin    | Actuals     | FY21     | 1/1/2020 | 140       |
| 16 | France      | Martin    | Plan        | FY20     | 1/1/2020 | 130       |
| 17 | France      | Martin    | Plan        | FY21     | 1/1/2020 | 140       |
| 18 | France      | Pierre    | Actuals     | FY20     | 1/1/2020 | 50        |
| 19 | France      | Pierre    | Actuals     | FY21     | 1/1/2020 | 100       |
| 20 | France      | Pierre    | Plan        | FY20     | 1/1/2020 | 50        |
| 21 | France      | Pierre    | Plan        | FY21     | 1/1/2020 | 80        |
使用 SPL XLL,输入公式:
=spl("=c=transpose(?2),?1.conj( (a=~).m(3:).(a.to(2)|c(#)|~))",A4:F6,C1:F3)
        =spl("=c=transpose(?2),?1.conj( (a=~).m(3:).(a.to(2)|c(#)|~))",A4:F6,C1:F3) 

transpose将表头 C1:F3 进行转置,conj 合并集合成员,~ 表示表格 A4:F6 每一行,m(3:) 表示从每行的第 3 个成员取到结尾。