Google文档技巧:Excel关键词筛选宏脚本(快速实现关键词分组的Excel工具)
如果有大批量的长尾关键词,想通过【关键词】找出包含的长尾
简短点说,就是可以快速对关键词分组
话不多说,Google Script代码:
function fuzzyMatchKeywords_chongfu() {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = spreadsheet.getSheetByName('工作表1');
var sheet2 = spreadsheet.getSheetByName('工作表2');
// 获取工作表1中的关键词列表,并过滤掉空白行
var keywordsSheet1 = sheet1.getRange('A:A').getValues().filter(function(row) {
return row[0].trim() !== '';
}).map(function(row) {
return row[0];
});
// 获取工作表2第一行的关键词
var keywordsSheet2 = sheet2.getRange(1, 1, 1, sheet2.getLastColumn()).getValues()[0];
// 清除之前的匹配结果,保留第一行的关键词
var lastRow = sheet2.getLastRow();
if (lastRow > 1) {
for (var col = 1; col <= sheet2.getLastColumn(); col++) {
var numRowsToClear = lastRow - 1;
if (numRowsToClear > 0) {
var rangeToClear = sheet2.getRange(2, col, numRowsToClear);
rangeToClear.clearContent();
}
}
}
var matchedKeywords = new Set(); // 用于存储已匹配到的关键词
var unmatchedKeywords = []; // 用于存储未匹配到的关键词
// 进行模糊匹配并填充结果
for (var i = 0; i < keywordsSheet2.length; i++) {
var matchCol = i + 1;
var searchKeyword = keywordsSheet2[i].toLowerCase();
var regex = new RegExp(searchKeyword, 'i'); // 创建不区分大小写的正则表达式
var rowOffset = 2; // 从第2行开始写入数据
for (var j = 0; j < keywordsSheet1.length; j++) {
var keyword = keywordsSheet1[j];
if (regex.test(keyword)) { // 使用正则表达式进行模糊匹配
sheet2.getRange(rowOffset, matchCol).setValue(keyword);
rowOffset++;
matchedKeywords.add(keyword); // 将匹配到的关键词加入集合
}
}
}
// 找出未匹配的关键词
for (var j = 0; j < keywordsSheet1.length; j++) {
if (!matchedKeywords.has(keywordsSheet1[j])) {
unmatchedKeywords.push(keywordsSheet1[j]);
}
}
// 创建未分组列,并将未匹配到的关键词填入
if (unmatchedKeywords.length > 0) {
var lastColumn = sheet2.getLastColumn() + 1;
sheet2.getRange(1, lastColumn).setValue('未分组'); // 设置“未分组”列的标题
for (var k = 0; k < unmatchedKeywords.length; k++) {
sheet2.getRange(k + 2, lastColumn).setValue(unmatchedKeywords[k]);
}
}
}
使用很简单,在【工作表1】第一列输入你的长尾关键词
然后在【工作表2】第一行输入你的"分组"(关键词)
然后用Google Script执行就行了
原理:模糊匹配
独特见解