根据特定条件引用其他工作表中的某些行

根据特定条件引用其他工作表中的某些行

我需要帮助来制作下表:假设我在 Excel 工作簿中有三张工作表。

  • 第一张表是摘要页。接下来的两张是主题 1 和主题 2。
  • 每个主题表都有一个包含两列的表格 - 书名和状态。
  • “Bookname” 是关于书的名称,“Status” 可以是“是”或“否” - 表示我是否已经开始读这本书。

因此,在任何给定点,在主题 1 和主题 2 中,都会有几本书,每本书都会分配有 Y 或 N。

既然如此,我只想知道如何才能只显示摘要页面中标记为“是”的那些书籍(出现在主题 1 和主题 2 表中)。也就是说,我希望在摘要页面中有一个表格,显示我目前正在阅读哪本书。

答案1

正如前面提到的,您想要的对于数据库解决方案来说很自然。这里有一种方法,它利用了 Excel 连接外部数据源的能力。我还没有广泛使用过这种方法,所以至少对我来说,它只能算是实验性的,而且可能还存在我尚未发现的隐藏陷阱。

思路是将工作簿与其自身建立数据连接,使用 Microsoft Query Tool 对工作簿主题表中的数据表定义联合查询,并将查询结果作为汇总表中的合并表返回。然后可以根据需要对该表中的数据进行排序和筛选。

主题表的设置与你概述的一致(略有阐述)。为了使查询工具将表中的数据识别为“表格”,必须为每本图书列表命名。例如,A1:E11表中的范围主题1已被命名主题1与其他两份数据表的名称类似。[1]


数据工作表 Subj1


要设置查询,首先从功能区上的选项卡中选择 /,然后From Other Sources选择From Microsoft QueryDataExcel 文件作为数据源,并指定工作簿本身作为源文件。

数据源


查询工具将打开,其中显示查询向导。您定义的每个范围名称都将列为表格,其列标题为字段。继续并从第一个表格 Subj1 中选择要包含在查询中的字段。然后单击Next两次以移动到查询向导完成对话框。在那里,选择单选View data or edit query in Microsoft Query按钮并单击Finish

查询向导


查询工具本身将打开,其中包含迄今为止指定的查询的图形视图和查询结果列表。单击SQL主菜单栏上的按钮,打开 SQL 编辑器。

SQL 编辑器


修改查询以便它能合并所有数据范围(在我的示例中为三个):

  SELECT subj1.subject, subj1.title, subj1.status
  FROM subj1
  UNION ALL
  SELECT subj2.subject, subj2.title, subj2.status
  FROM subj2
  UNION ALL
  SELECT subj3.subject, subj3.title, subj3.status
  FROM subj3


单击 后OK,保存查询。现在,您可以通过选择File/来嵌入查询结果Return Data to Microsoft Excel,然后按照提示将结果Summary作为可排序和可过滤的表格导入到工作表中。

由于 Excel 认为表格中的数据来自外部数据源,因此在编辑书籍列表后,您需要刷新表格。Refresh可以通过在表格中单击鼠标右键来调出上下文菜单。 [2]

如果您随后想要修改查询(例如,添加类别),您可以通过功能区上的Data/访问它。单击对话框中,然后选择选项卡。直接在框中编辑查询;如果您按 ,Excel 会发出警告。 ConnectionsPropertiesWorkbook ConnectionsDefinitionCommand textEdit query

结果表

1. E 列和第 11 行中的蓝色阴影区域是为了以后添加更多书籍(或类别)时方便使用。可以将它们向下或向右拖动以留出更多数据的空间,同时保留范围名称。(在范围名称中包含额外行将导致摘要表中出现空白行;查询工具不会将动态定义的范围识别为表格。)

2. 在上下文菜单上选择Table/External Data Properties将会显示一些有用的表格格式属性,包括在刷新时关闭表格列的自动调整大小。

相关内容