0Pricing
Excel Formulas Academy · 课时

使用 QUERY 查询数据

在表格中使用类似 SQL 的语法选择、筛选和分组数据

使用 QUERY 查询数据 是 CoddyKit 上的免费 Excel Formulas Academy 课时。 这是第 1 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Excel Formulas Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Excel Formulas Academy 课程共包含 4 节课。

QUERY 的作用

Google 表格有一个函数,感觉就像一种微型数据库语言:QUERY。它让您能够使用与结构化查询语言非常接近的语法来选择、筛选和汇总数据。

您无需将 FILTER、SORT 和 SUMIF 叠加使用,只需写出一条易读的指令。例如,仅显示东部区域的行,并按销售额排序,就可以写成一个公式。

QUERY 是 Google 表格独有的函数。Excel 没有此函数,因此本课内容仅适用于 Google 表格。

基本语法

QUERY 包含三个部分:

  • 数据 要读取的范围,例如 A1:D100
  • 查询语句 用引号括起来的指令文本字符串
  • 标题行数 可选参数,用于告知 QUERY 有多少行是标题行

查询字符串是关键所在,并且始终要放在双引号内。

=QUERY(A1:D100, "SELECT A, B", 1)

选择列

SELECT 子句用于选择要返回的列。在 QUERY 中,您需要使用工作表列字母(A、B、C)来引用列,而不是使用标题名称。

使用 SELECT * 可返回所有列,也可以列出特定列,只保留所需内容。列出的顺序就是它们在结果中显示的顺序。

=QUERY(A1:D100, "SELECT C, A, B", 1)

示例数据集

假设 A1:D7 中有一张销售表,标题为 区域、销售代表、产品、销售额:

  • A:区域(东部、西部)
  • B:销售代表(安、博、赛)
  • C:产品(钢笔、纸张)
  • D:销售额(数字)

本课接下来的内容都会使用这个数据集。看到下面的 QUERY 公式时,请在脑中想象这份数据。

使用 WHERE 进行筛选

WHERE 子句只保留满足条件的行。您可以使用 =、>、< 和 >= 等运算符,将某列与某个值进行比较。

文本值必须放在查询字符串内的单引号中,因为整个查询字符串已经用双引号括起来了。

=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East'", 1)

比较数字

数字筛选不需要引号。若只想查看销售额较高的记录,可以直接将 D 列与某个数字进行比较。

这样只会返回 Sales 大于 500 的行,让报告专注于重要交易。

=QUERY(A1:D7, "SELECT B, C, D WHERE D > 500", 1)

组合条件

您可以像在结构化查询语言中一样,使用 AND 和 OR 组合条件。

  • AND 要求两个条件都为真
  • OR 只要求至少一个条件为真

此示例会保留东部区域且销售额超过 300 的行。

=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East' AND D > 300", 1)

限制行数

添加 LIMIT 可限制返回的行数。这对于预览前 N 名结果或让仪表板保持整洁非常方便。

这里我们只请求前 3 个匹配行。稍后结合排序功能,就可以构建真正的前三名列表。

=QUERY(A1:D7, "SELECT A, B, D WHERE D > 0 LIMIT 3", 1)

单引号与双引号为何重要

这件事一开始很容易让人困惑。整个查询是一个 Sheets 文本字符串,因此要使用双引号。这样一来,您要进行比较的任何文本都必须放在其中的单引号内。

写成 WHERE A = "East" 会破坏公式,因为内部的双引号会提前结束字符串。请始终使用 WHERE A = 'East'。

=QUERY(A1:D7, "SELECT * WHERE C = 'Pens'", 1)

在查询中引用单元格

您可以通过从单元格中读取值,让查询具有交互性。由于单元格值位于引号之外,因此需要使用 & 运算符将其拼接进去。

如果单元格 F1 中存放着区域名称,那么此公式就会根据用户在那里输入的内容进行筛选。

=QUERY(A1:D7, "SELECT A, B, D WHERE A = '" & F1 & "'", 1)

标题行参数

第三个参数用于告知 QUERY 数据中有多少行标题。当第一行包含区域和销售额等标签时,请传入 1。

如果省略此参数,QUERY 会自行猜测,但有时会猜错:它可能会将标题混入结果,或将数字当作文本。明确指定 1 可以让结果更加稳定。

=QUERY(A1:D7, "SELECT A, D WHERE D > 100", 1)

快速检查

检验您对 QUERY 基础知识的理解。

回顾

您已经学习了 Google 表格 QUERY 的核心内容:

  • QUERY(data, query, headers) 是基本结构
  • SELECT 按字母选择列;* 表示全部列
  • WHERE 用于筛选行,并可与 AND 和 OR 组合
  • 文本使用单引号,数字不需要引号
  • & 可插入单元格值,从而实现交互式筛选

接下来,您将对这些结果进行排序和分组,以生成汇总数据。

=QUERY(A1:D7, "SELECT A, B, D WHERE A = 'East' AND D > 300 LIMIT 5", 1)

常见问题解答

「使用 QUERY 查询数据」课时是免费的吗?

是的 — 「使用 QUERY 查询数据」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Excel Formulas Academy 课程的其余内容,请升级到 CoddyKit PRO。 Excel Formulas Academy 课程共包含 4 节课。

「使用 QUERY 查询数据」这节课中我会学到什么?

在表格中使用类似 SQL 的语法选择、筛选和分组数据 你通过在浏览器中直接运行的动手代码来练习 Excel Formulas Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Excel Formulas Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Excel Formulas Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 1 节课,共 4 节。

「使用 QUERY 查询数据」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Excel Formulas Academy 课中编写并运行代码吗?

能。每节 Excel Formulas Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 使用 QUERY 查询数据
  2. 在 QUERY 中排序和分组
  3. 使用 ARRAYFORMULA 将公式应用到整列
  4. 使用 IMPORTRANGE 提取数据
← 返回 Excel Formulas Academy