excel - 如何取消透视交叉表之类的表格?

标签 excel ms-access vba ms-access-2003 unpivot

从 Excel 文档导入数据后,我最终得到了一个如下所示的表格(与数据透视表非常相似):

EMPLOYEEID | SKILL1 | SKILL2 | SKILL 3
---------------------------------------
   emp1    |    1   |        |    3
   emp2    |    2   |    3   |    
   emp3    |        |        |    1
   emp4    |        |    2   |    3

在我的数据库中,我有另一个表,用于存储每种技能的每个知识级别 每位员工:

EMPLOYEEID |  SKILLID  | LEVEL_OF_KNOWLEDGE
------------------------------------------
   emp1    |  SKILL1  |         1   
   emp1    |  SKILL3  |         3       
   emp2    |  SKILL1  |         2
   emp2    |  SKILL2  |         3
   emp3    |  SKILL3  |         1   
   emp4    |  SKILL2  |         2
   emp4    |  SKILL3  |         3

我的问题是,如何从第一个表中检索数据并将其存储在第二个表中?是否可以仅使用 Access 查询或让我处理 vba?

我发现了很多相反的例子(旋转第二个表以获得第一个表),但我还没有找到解决这种情况的方法。

最佳答案

当然

SELECT EmployeeID, "SKILL1" AS SkillID, SKILL1 AS Level_OF_Knowledge WHERE SKILL1 IS NOT NULL
UNION ALL SELECT EmployeeID, "SKILL2" AS SkillID, SKILL2 AS Level_OF_Knowledge  WHERE SKILL2 IS NOT NULL
UNION ALL SELECT EmployeeID, "SKILL3" AS SkillID, SKILL3 AS Level_OF_Knowledge  WHERE SKILL3 IS NOT NULL

*对第一个表中的每个附加列重复最后一行

关于excel - 如何取消透视交叉表之类的表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18536639/

相关文章:

excel - 在 VBA 中引用命名范围

ms-access - 带有是/否字段的 IIF 语句

django - django 的 MS Access 后端

vba - 如何在 PowerPoint VBA 中增加每张新幻灯片的形状微移大小?

excel - 如果包含特定值,则将值从一列复制到另一列

excel - 在 MS.Excel 中生成特定范围的 IP 地址

string - Excel 函数格式

vba - 选择大小写 不 或

excel - 将 A 列数据的行连接到第一行 B 列的单个单元格时面临的问题

sql - 在 Access 97 中的 SQL 查询中 Access 另一个受密码保护的数据库