创建一个表,该表是另一个表的子查询

创建一个表,该表是另一个表的子查询

我有一张包含大量员工数据的大型表格,我想在其他工作表上创建表格,其中包含从主数据集中筛选出的数据集。我有编写大量 VBA 宏的经验,可以用数据库和 SQL 在几分钟内完成我想要做的事情,但我感觉就像是穿着靴子去追蚂蚁山一样。

我尝试使用数据透视表来完成此操作,但是我对数据透视表不熟悉,无法获得满意的结果。

大型员工数据集包含诸如开始日期、当前部门、专业技能组合等信息(您所期望的正常内容)。

我想在其他工作表上创建动态表格,例如显示在 X 部门工作的所有员工或拥有 Y 专业技能的所有员工。显然,我希望当主数据集上的数据发生更改或添加时,工作表表格能够更新。

我是否正确地认为这里有一个简单的解决方案,或者我是否需要使用实际的数据库来寻找它?

答案1

我想建议基于 Excel 函数的方法,从源表过滤/提取记录到另一个表。

源表:

在此处输入图片描述


在此处输入图片描述


怎么运行的:

  • 如果条件单元格为空白,则公式不会返回记录。
  • 公式适用于单一标准以及多个标准。

情况 1:

在此处输入图片描述

情况 2:

在此处输入图片描述

  • 单元格中的数组公式B31

{=IFERROR(IF(AND(ISBLANK($B$27),ISBLANK($C$27),ISBLANK($D$27),ISBLANK($E$27),ISBLANK($F$27),ISBLANK($G$27),ISBLANK($H$27))," ",INDEX($B$2:$H$21,SMALL(IF(MMULT(($B$2:$H$21=$B$27:$H$27)*1,{1;1;1;1;1;1;1})=COUNTA($B$27:$H$27),MATCH(ROW($B$2:$B$21),ROW($B$2:$B$21)),""),ROWS($A$1:A1)),COLUMNS($A$1:A1))),"")}

  • 完成配方Ctrl+Shift+Enter&填充。

  • 这项练习的关键特点是MMULT功能。
  • MMULT(矩阵乘法),返回两个数组的矩阵乘积。
  • 数组 1 的列数等于数组 2 的行数。
  • 数组结果包含与数组 1 相同的行数以及与数组 2 相同的列数。

根据需要调整公式中的单元格引用。

相关内容