如何在Google Sheets中转换会议活动投票数据为按活动归集格式
将Google Forms投票数据按活动归集的方法
方法1:Google Sheets公式法(零编程,快速上手)
- 把Forms的响应数据同步到Google Sheets,确认邮箱列(比如A列)和活动选择列(比如B列)清晰分离。
- 提取所有唯一活动:在空白单元格(比如C1)输入公式
=UNIQUE(FLATTEN(SPLIT(TEXTJOIN(",",TRUE,B:B),","))),按下回车后会自动生成15个活动的唯一列表,填充在C列。 - 匹配对应参会者邮箱:在D2单元格输入
=TEXTJOIN(", ",TRUE,FILTER(A:A,ISNUMBER(SEARCH(C2,B:B)))),下拉公式到所有活动行。这个公式会自动筛选出所有投票包含当前活动的邮箱,并拼接成列表。
方法2:Python脚本批量处理(适合大量数据)
如果数据量较大或者需要重复执行,用Python脚本更高效:
- 从Google Sheets导出数据为CSV文件(命名为
responses.csv)。 - 运行以下代码(注意修改列名匹配你的CSV):
import csv from collections import defaultdict # 初始化存储结构:活动为键,邮箱列表为值 activity_map = defaultdict(list) with open('responses.csv', 'r', encoding='utf-8') as input_file: reader = csv.DictReader(input_file) # 替换成你实际的列名,比如"Email"和"Selected Activities" for row in reader: email = row['邮箱地址'].strip() # 拆分活动并去除空格 activities = [act.strip() for act in row['所选活动'].split(',')] for act in activities: activity_map[act].append(email) # 写入结果到新CSV with open('activity_attendees.csv', 'w', newline='', encoding='utf-8') as output_file: writer = csv.writer(output_file) writer.writerow(['活动名称', '参会者邮箱']) for activity, emails in activity_map.items(): writer.writerow([activity, ', '.join(emails)])
- 运行后会生成
activity_attendees.csv,每行对应一个活动和它的潜在参会者邮箱列表。
方法3:手动归集(仅适合少量数据)
如果只有几十条响应,直接列好15个活动,逐个查看每条记录,把邮箱手动添加到对应活动的列表里——虽然笨但应急可用。
内容的提问来源于stack exchange,提问作者UKDataGeek
相关产品推荐
相关产品推荐

