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

如何将Google表单响应的邮箱统计结果替换为对应姓名?

解决方案:关联邮箱统计结果与姓名列表

完全可行,你可以通过VLOOKUP+ARRAYFORMULA+QUERY的组合公式,在第三个工作表中直接生成「姓名+次数」的列表。以下是具体实现方式:

前提说明

假设你的主邮箱列表工作表名为「主邮箱列表」,其中:

  • A列:邮箱地址(与「Form Responses 1」B列格式一致)
  • B列:对应姓名

公式写法(一键生成结果)

在第三个工作表的任意空白单元格(比如A1)输入以下公式:

=ARRAYFORMULA({
  IFERROR(VLOOKUP(QUERY('Form Responses 1'!B2:B,"SELECT B WHERE B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC LIMIT 10",0), '主邮箱列表'!A:B, 2, FALSE), "未匹配到姓名"),
  QUERY('Form Responses 1'!B2:B,"SELECT COUNT(B) WHERE B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC LIMIT 10 LABEL COUNT(B) ''",0)
})

公式解释

  1. 内层QUERY:先从表单响应中筛选出出现次数TOP10的邮箱地址,以及对应的次数
  2. VLOOKUP:将统计出的邮箱地址与主列表匹配,返回对应的姓名;用IFERROR处理无匹配的情况,显示「未匹配到姓名」
  3. ARRAYFORMULA:将姓名和次数两个结果合并成二维数组,自动填充到多行

进阶优化(处理邮箱大小写问题)

如果表单提交的邮箱和主列表存在大小写差异(比如Email1@xxx.com和email1@xxx.com),可以用LOWER()统一格式,避免匹配失败:

=ARRAYFORMULA({
  IFERROR(VLOOKUP(LOWER(QUERY('Form Responses 1'!B2:B,"SELECT B WHERE B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC LIMIT 10",0)), LOWER('主邮箱列表'!A:B), 2, FALSE), "未匹配到姓名"),
  QUERY('Form Responses 1'!B2:B,"SELECT COUNT(B) WHERE B IS NOT NULL GROUP BY B ORDER BY COUNT(B) DESC LIMIT 10 LABEL COUNT(B) ''",0)
})

另一种简洁写法(直接关联统计)

你也可以先给每个表单提交的邮箱匹配姓名,再按姓名统计次数,公式如下:

=QUERY(ARRAYFORMULA({VLOOKUP('Form Responses 1'!B2:B, '主邮箱列表'!A:B, 2, FALSE), 'Form Responses 1'!B2:B}), "SELECT Col1, COUNT(Col2) WHERE Col1 IS NOT NULL GROUP BY Col1 ORDER BY COUNT(Col2) DESC LIMIT 10 LABEL Col1 '姓名', COUNT(Col2) '次数'", 0)

这个公式一步完成「匹配姓名+统计次数」的操作,结果直接显示姓名和对应次数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 13:10:14