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

Excel函数需求:提取机器数量>1的产品对应机器数据

嘿,这个需求我之前帮朋友处理过,其实分两种情况来解决会更稳妥,毕竟不同Excel版本支持的函数不一样~先假设你的表格结构是A列存产品名(比如product5),B列存对应的机器编号(比如machine 1),如果结构不一样,你只要把公式里的列号对应调整就行哈。

方案一:适用于Excel 365/2021(支持动态数组函数)

这个版本的函数更简洁,能直接自动溢出所有符合条件的结果,不用手动下拉:

=LET(
    unique_products, UNIQUE(A:A),
    product_counts, COUNTIF(A:A, unique_products),
    filtered_products, FILTER(unique_products, product_counts>1),
    MAP(filtered_products, LAMBDA(p, TEXTJOIN(", ", TRUE, p&" "&FILTER(B:B, A:A=p))))
)

我给你拆解下逻辑:

  • UNIQUE(A:A):提取所有不重复的产品名
  • COUNTIF(A:A, unique_products):统计每个产品对应的机器数量
  • FILTER(unique_products, product_counts>1):筛选出机器计数>1的产品
  • MAP(...):遍历每个符合条件的产品,用TEXTJOIN把对应的「产品+机器」条目用, 拼接起来
方案二:适用于旧版Excel(无动态数组支持)

旧版得用辅助列配合数组公式来实现:

  1. 添加辅助列统计机器数量:在C2单元格输入公式,下拉填充到所有数据行

    =COUNTIF($A$2:$A$100,A2)
    

    (把$A$2:$A$100改成你实际的数据范围)

  2. 生成拼接结果:在D2单元格输入以下数组公式,按Ctrl+Shift+Enter结束输入,再下拉填充

    =IF(C2>1, TEXTJOIN(", ", TRUE, IF($A$2:$A$100=A2, $A$2:$A$100&" "&$B$2:$B$100, "")), "")
    

    逻辑是:先判断当前产品的机器计数是否>1,是的话就用TEXTJOIN拼接所有同一产品的「产品+机器」条目,否则返回空值。

比如你提到的product5,如果A列出现2次、对应B列是machine 1和machine 4,两种方案都会返回你想要的格式:product5 machine 1, product5 machine 4

内容的提问来源于stack exchange,提问作者ants99

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 09:21:37