You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中跨表按指定条件提取唯一行数据

Google Sheets按经理维度提取唯一值并统计的最优实现方案

假设你的数据源主表列结构为:A列=Manager、B列=Employee、C列=Project、D列=Date,已提取A列唯一经理姓名转置为当前表的列标题(比如B1、C1、D1分别为不同经理姓名)。

最优方案核心逻辑

用FILTER+UNIQUE+QUERY组合实现,无需手动下拉公式,结果自动向下溢出,性能远优于传统INDEX+SMALL数组公式。


需求1:提取对应经理的唯一Employee并统计出现次数

在对应经理列的首个空白行(比如B1是经理姓名,就在B2输入)输入公式:

=QUERY(UNIQUE(FILTER($B:$B,$A:$A=B$1)),"SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 '员工姓名', COUNT(Col1) '出现次数'",0)

如果数据源是其他工作表,修改列引用前缀即可,比如数据源表名为销售主表,就改成FILTER(销售主表!$B:$B,销售主表!$A:$A=B$1)。


需求2:提取对应经理的唯一Project并统计出现次数

修改FILTER的目标列即可,公式如下:

=QUERY(UNIQUE(FILTER($C:$C,$A:$A=B$1)),"SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 '项目名称', COUNT(Col1) '出现次数'",0)

合并输出员工+项目统计的方案

如果需要在同一经理列下先展示员工统计、再展示项目统计,用数组拼接公式即可:

={
QUERY(UNIQUE(FILTER($B:$B,$A:$A=B$1)),"SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1 LABEL Col1 '维度', COUNT(Col1) '次数'",0);
{"---","---"};
QUERY(UNIQUE(FILTER($C:$C,$A:$A=B$1)),"SELECT Col1, COUNT(Col1) WHERE Col1 IS NOT NULL GROUP BY Col1",0)
}

原有公式失效原因

  • 传统INDEX+SMALL数组公式需要按Ctrl+Shift+Enter激活数组运算,否则只会返回单行结果
  • 公式本身没有去重逻辑,会返回重复的员工/项目记录
  • 当筛选结果行数小于当前行号时,会直接返回错误值,容错性低

内容的提问来源于stack exchange,提问作者usernametaken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 21:15:05