Google表格自定义函数:连接单元格并按需添加相邻计数列值
实现Google表格商品与数量的个性化拼接需求
我来帮你搞定这个需求!其实不用折腾复杂的自定义函数也能快速实现,当然如果你偏好自定义函数的话也有方案,两种方法都给你捋清楚:
方法一:用内置函数组合(无需脚本)
直接用ARRAYFORMULA+IF+JOIN的组合就能一步到位。假设你的商品列是A列(从A2开始),数量列是B列(从B2开始),在空白单元格输入下面的公式就行:
=JOIN(", ", ARRAYFORMULA(IF(B2:B>1, A2:A&" x"&B2:B, A2:A)))
公式说明:
ARRAYFORMULA:让后面的IF函数对整个B列的数量批量生效,不用逐行重复写公式IF(B2:B>1, A2:A&" x"&B2:B, A2:A):判断每个商品的数量是否大于1,满足条件就拼接成「商品名 x数量」的格式,不满足就直接显示商品名JOIN(", ", ...):把所有处理好的文本用「, 」分隔起来,刚好得到你想要的结果
方法二:自定义函数(用Google Apps Script)
如果你想更灵活(比如以后要加更多格式规则),可以写个自定义函数:
- 打开你的Google表格,点击顶部菜单的「扩展程序」→「Apps脚本」
- 把默认的代码删掉,替换成下面的脚本:
function formatItems(products, quantities) { const result = []; // 遍历每一行的商品和数量数据 for (let i = 0; i < products.length; i++) { const productName = products[i][0]; const qty = quantities[i][0]; // 根据数量判断拼接格式 if (qty > 1) { result.push(`${productName} x${qty}`); } else { result.push(productName); } } // 用逗号分隔所有结果并返回 return result.join(", "); }
- 保存脚本(随便起个名字比如「FormatItems」),回到表格
- 在空白单元格输入
=formatItems(A2:A4, B2:B4)(把范围改成你实际的商品和数量区域),就能得到目标效果了
两种方法都能实现你要的「牛奶, 麦片 x3, 面包 x2」效果,选哪种看你的需求偏好~
内容的提问来源于stack exchange,提问作者ShoeLace1291
相关产品推荐
相关产品推荐

