如何按商品Handle匹配将Sheet标签追加至Shopify产品标签列?
解决方案:Shopify产品标签批量追加更新
方法一:使用Google Sheets公式实现
在Sheet1的空白列(比如H列,避免覆盖原有数据)输入以下公式,下拉填充即可:
=IFERROR(G2 & ", " & TEXTJOIN(", ", TRUE, FILTER(Sheet2!B:B, Sheet2!A:A=A2)), G2)
公式说明:
FILTER(Sheet2!B:B, Sheet2!A:A=A2):筛选Sheet2中与当前行handle匹配的所有标签TEXTJOIN(", ", TRUE, ...):将筛选到的标签用「逗号+空格」拼接成字符串G2 & ", " & ...:把原有标签和新标签拼接合并IFERROR(..., G2):如果没有匹配的标签,直接返回原有标签内容
完成后,复制H列结果,右键选择「粘贴值」到G列,替换原有标签即可。
方法二:使用Google Apps Script批量处理
如果数据量较大,公式下拉效率偏低,可通过脚本一键完成:
- 打开目标Google表格,点击菜单栏「扩展程序」→「Apps脚本」
- 清空默认代码,粘贴以下脚本:
function appendTags() { const ss = SpreadsheetApp.getActiveSpreadsheet(); const sheet1 = ss.getSheetByName('Sheet1'); const sheet2 = ss.getSheetByName('Sheet2'); // 构建Sheet2的handle-标签映射表 const sheet2Data = sheet2.getDataRange().getValues(); const tagMap = {}; sheet2Data.forEach(row => { const handle = row[0]; const tag = row[1]; if (handle && tag) { tagMap[handle] ? tagMap[handle].push(tag) : tagMap[handle] = [tag]; } }); // 批量更新Sheet1的标签 const sheet1Data = sheet1.getDataRange().getValues(); sheet1Data.forEach((row, index) => { if (index === 0) return; // 跳过表头 const handle = row[0]; const existingTags = row[6] || ''; // G列对应索引为6 if (tagMap[handle]) { const newTagsStr = tagMap[handle].join(', '); const updatedTags = existingTags ? `${existingTags}, ${newTagsStr}` : newTagsStr; sheet1.getRange(index+1, 7).setValue(updatedTags); // 更新G列 } }); SpreadsheetApp.getUi().alert('标签追加完成!'); }
- 点击「保存」,命名项目(比如
AppendShopifyTags) - 点击运行按钮,首次运行需按提示完成授权,等待脚本执行完成即可
处理完毕后,直接导出Sheet1数据,即可导回Shopify完成产品标签更新。
内容的提问来源于stack exchange,提问作者SIDDHARTH
相关产品推荐
相关产品推荐

