在Google Sheets中编写Query函数实现按销售人员列表筛选Data工作表销售金额的方法
Google Sheets Query函数实现销售人员销售金额匹配及基础用法
我来帮你搞定Google Sheets里的这个Query函数需求,分基础用法和你要的动态匹配列表两种情况来讲:
一、基础Query函数筛选Data表销售数据的方法
Query函数的核心结构是:=QUERY(数据源区域, "查询语句", [表头行数]),这里给你几个常用的基础示例:
筛选Data表中所有销售记录(显示姓名、产品、金额):
=QUERY(Data!A:C, "SELECT *", 1)解释:
Data!A:C是数据源(假设姓名在A列,产品在B列,金额在C列),"SELECT *"表示选择所有列,1表示数据源第一行是表头。筛选特定销售人员(比如“张三”)的所有销售记录,只显示姓名和金额:
=QUERY(Data!A:C, "SELECT A, C WHERE A = '张三'", 1)解释:
SELECT A, C指定只返回姓名和金额列,WHERE A = '张三'是筛选条件,注意字符串要加单引号。按销售人员汇总总销售金额:
=QUERY(Data!A:C, "SELECT A, SUM(C) GROUP BY A LABEL SUM(C)'销售总金额'", 1)解释:
SUM(C)计算金额列的总和,GROUP BY A按姓名分组,LABEL用来修改汇总列的表头名称。
二、实现A列粘贴销售人员列表后自动匹配销售金额的Query函数
要实现当你在A1:A9999粘贴任意销售人员列表后,自动返回对应人员的销售数据(或总金额),需要结合JOIN和FILTER函数把A列的列表转换成Query能识别的格式:
1. 返回对应人员的所有销售明细
在B1单元格输入:
=QUERY(Data!A:C, "SELECT A, C WHERE A IN ('"&JOIN("','",FILTER(A1:A9999,A1:A9999<>""))&"')", 1)
解释:
FILTER(A1:A9999,A1:A9999<>""):先过滤掉A列中的空单元格,只保留有姓名的内容JOIN("','",...):把过滤后的姓名用','连接,比如变成张三','李四'- 用
&拼接成Query的条件:WHERE A IN ('张三','李四'),这样就能自动匹配A列所有输入的销售人员
2. 汇总对应人员的总销售金额(更实用的版本)
如果需要显示每位销售人员的总金额,而不是每条明细,用这个:
=QUERY(Data!A:C, "SELECT A, SUM(C) WHERE A IN ('"&JOIN("','",FILTER(A1:A9999,A1:A9999<>""))&"') GROUP BY A LABEL SUM(C)'销售总金额'", 1)
这个函数会自动按A列的销售人员列表,汇总每个人的总销售额,还会把汇总列的表头改成“销售总金额”,更清晰。
注意:如果A列的姓名有空格或者特殊字符,这个函数也能正常处理,因为JOIN已经帮你加上了正确的单引号包裹。
内容的提问来源于stack exchange,提问作者zongshita
相关产品推荐
相关产品推荐

