You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用公式按行拼接表格中数量与对应物品名称为字符串?

高效实现“数量+物品名称”动态拼接的公式方案

针对你用矩阵式表格管理物品(绿色表头行)和对应数量,需要按行拼接成目标字符串的需求,推荐以下两种适配不同场景的公式,解决CONCATENATE公式过长、新增物品需修改公式的问题:

1. 适配Excel 365/2021或Google Sheets的动态公式(推荐)

如果你的表格支持动态数组功能,直接用TEXTJOIN结合整行引用实现自动适配新增物品列:
假设物品名称在第1行(绿色行)的B1:1区域,当前需要处理的是第2行的数量,公式写入目标单元格:

=TEXTJOIN(" ", TRUE, IF(B2:2>0, B2:2&" "&B$1:1, ""))

下拉公式即可批量处理所有行。

公式说明:

  • TEXTJOIN(" ", TRUE, ...):用空格作为分隔符拼接内容,TRUE参数会自动忽略空值,避免出现多余空格
  • IF(B2:2>0, B2:2&" "&B$1:1, ""):判断当前行的每个数量单元格是否大于0,仅拼接有数量的“数值+物品名”组合,无数量的单元格返回空值
  • 引用B$1:1(整行物品名)和B2:2(整行数量)的方式,新增物品列时,公式会自动纳入新列的内容,无需手动修改公式

如果要一次性生成所有行的结果,可使用BYROW批量处理(仅Excel 365/Google Sheets支持):

=BYROW(B2:10, LAMBDA(row, TEXTJOIN(" ", TRUE, IF(row>0, row&" "&B$1:1, ""))))

将B2:10替换为你的数量数据所在的行范围即可。

2. 适配旧版Excel的兼容方案

如果你的Excel版本不支持TEXTJOIN,可以用PHONETIC函数结合辅助列实现(需注意仅支持文本内容):

  1. 在每行的右侧新增辅助列,输入公式=IF(B2>0, B2&" "&B$1&" ", ""),向右填充到所有物品列
  2. 在目标单元格输入=PHONETIC(辅助列范围),即可拼接该行的有效内容

这种方式虽然需要辅助列,但新增物品列时只需向右填充辅助列公式,目标单元格公式无需修改。

内容的提问来源于stack exchange,提问作者Nguyễn Nguyễn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:53:17