谷歌表格如何批量生成符合字数限制的游戏求职搜索查询
谷歌表格批量生成游戏行业求职谷歌搜索查询方案
需求背景
我正在用谷歌表格简化游戏行业求职搜索流程,现有785个游戏相关域名列表,需要将域名分组后结合关键词生成符合谷歌搜索规则的查询字符串:
- 谷歌搜索查询限制为32词,域名(如
badrobot.com)算1词,操作符不计入词数限制 - 需完成步骤:
- 统计表格中关键词总数量
- 用32减去关键词数量得到单次查询可容纳的域名数
n - 从域名列表中选取
n个域名分组 - 合并域名与关键词生成标准查询字符串
- 重复操作直至所有域名生成对应查询
当前问题
已写出能根据词数动态选择n行域名的公式,但无法迭代处理整个域名列表。谷歌表格无for/while循环函数,不确定是否能用arrayformula实现,且对该函数用法不熟悉。
样本数据
| 唯一域名(765个) | 职位名称(21词) | 附加搜索词(1词) | 上限 |
|---|---|---|---|
| 8circuitstudios.com | production coordinator | junior | 10 |
| acemaddox.com | producer | ||
| adhocla.com | associate producer | ||
| alderongames.com | project manager | ||
| alkimiainteractive.com | support technician | ||
| antstream.com | technical support | ||
| apocalypse333.com | operations specialist | ||
| apply.workable.com | operations coordinator | ||
| artificialrome.com | project manager | ||
| aweinteractive.com | project specialist | ||
| awem.com | operations associate | ||
| [...] |
预期查询输出
(site:8circuitstudios.com OR site:acemaddox.com OR site:adhocla.com OR site:alderongames.com OR site:alkimiainteractive.com OR site:antstream.com OR site:apocalypse333.com OR site:apply.workable.com OR site:artificialrome.com) (production coordinator OR production manager OR producer OR associate producer OR support technician OR technical support OR operations specialist OR operations coordinator OR project manager OR project specialist OR operations associate) (junior)
当前使用公式
=concatenate("(site:" & textjoin(" OR site:", 1, INDIRECT("$A"&2&":A"&D2)) & ")" & " (" & textjoin(" OR ", 1, $B$2:$C) & ")" & " (" & textjoin(" OR ", 1, $C$2:$C) & ")")
实现建议
方案1:先分组再生成查询(适合新手)
给域名分组:在原表格新增E列,E2输入公式并下拉填充至所有域名行,生成每组的序号:
=CEILING(ROW(A2)-ROW(A$2)+1, $D$2)公式中
$D$2是单次可容纳的域名数n(比如样本中的10),每n个域名会被分到同一个组。批量生成查询:新建工作表(如Sheet2):
- A列输入分组号(1、2、3…直到59)
- B2输入公式,提取对应组的域名:
=TEXTJOIN(" OR site:", 1, FILTER(Sheet1!$A$2:$A, Sheet1!$E$2:$E=A2)) - C2输入完整查询公式,下拉填充至所有分组:
="(site:"&B2&") ("&TEXTJOIN(" OR ", 1, UNIQUE(FILTER(Sheet1!$B$2:$B, Sheet1!$B$2:$B<>"")))&") ("&TEXTJOIN(" OR ", 1, UNIQUE(FILTER(Sheet1!$C$2:$C, Sheet1!$C$2:$C<>"")))&")"
方案2:用LET函数一次性生成所有查询(高效进阶)
在新建工作表的A2单元格输入以下公式,无需下拉即可自动生成所有59条查询:
=LET( n, $D$2, total_domains, COUNTA(Sheet1!$A$2:$A), groups, CEILING(total_domains/n, 1), domain_groups, BYROW(SEQUENCE(groups), LAMBDA(g, TEXTJOIN(" OR site:", 1, OFFSET(Sheet1!$A$2, (g-1)*n, 0, MIN(n, total_domains-(g-1)*n))))), job_keywords, TEXTJOIN(" OR ", 1, UNIQUE(FILTER(Sheet1!$B$2:$B, Sheet1!$B$2:$B<>""))), extra_terms, TEXTJOIN(" OR ", 1, UNIQUE(FILTER(Sheet1!$C$2:$C, Sheet1!$C$2:$C<>""))), BYROW(domain_groups, LAMBDA(d, "(site:"&d&") ("&job_keywords&") ("&extra_terms&")")) )
公式说明:
LET定义了n(单次域名数)、total_domains(总域名数)、groups(总组数)等变量BYROW+OFFSET实现域名分组- 最后将分组后的域名与去重后的关键词拼接成标准查询
内容的提问来源于stack exchange,提问作者snomsnomsnom
相关产品推荐
相关产品推荐

