【问题标题】:How can I concatenate multiple cells from the same column and different lines in Excel?如何在 Excel 中连接来自同一列和不同行的多个单元格?
【发布时间】:2021-04-28 00:48:35
【问题描述】:

我有 3 列数据,需要连接同一列的两个值,但按单独的列(A 列)分组。在下面的示例中,我需要将品牌 + 产品类型(C 列)组合在一起,得到总共 66 个连接值。

如何获得所需的串联值?我需要合并数千个。

ABC 扩散器
ABC 冷热疗法
ABC 加湿器
DEF 油
DEF 扩散器
DEF 蜡烛
DEF 空气清新剂
等等

【问题讨论】:

    标签: excel concatenation vlookup


    【解决方案1】:

    此解决方案适用于支持 LET 和动态数组的 Excel 版本

    为了节省空间,我稍微减少了你的数据,但这应该会给你一个想法。

    黄色单元格有公式,其余的是溢出的动态数组。

    G2 水平列出唯一标题。 =TRANSPOSE(UNIQUE(A3:A12))

    G3 列出了所有的扩散器组合。

    =LET(titleList,$A$3:$A$12,
         groupList,$B$3:$B$12,
         nameList,$C$3:$C$12,
         Title,G2,
         brandList,TRANSPOSE(FILTER(nameList,(titleList=Title)*(groupList="Brand"))),
         productType,FILTER(nameList,(titleList=Title)*(groupList="Product Type")),
         combos,brandList&" "&productType,
         numRows,ROWS(combos),
         numCols,COLUMNS(combos),
         outRows,SEQUENCE(numRows*numCols),
         
         INDEX(combos,MOD(outRows-1,numRows)+1,INT((outRows-1)/numRows)))
    

    H3 列出了所有精油组合。它是G3复制的。 A1 显示每个标题的组合的最大长度。 =MAX(COUNTIFS($A$3:$A$12,G2#,$B$3:$B$12,"Brand")*COUNTIFS($A$3:$A$12,G2#,$B$3:$B$12,"Product Type"))

    E3 列出了所有独特的组合。

    =LET(numRows,A1,
         numCols,COLUMNS(G2#),
         data,OFFSET(G3,0,0,numRows,numCols),
         outRows,SEQUENCE(numRows*numCols),
         oneCol,INDEX(data,MOD(outRows-1,numRows)+1,INT((outRows-1)/numRows)+1),
    
         FILTER(oneCol,oneCol<>0))
    

    More info on LET More info on dynamic arrays

    【讨论】:

    • 感谢您的快速回复。不幸的是,G3 的公式出现“空数组”错误。
    • 这很奇怪。我直接从上图中的电子表格中复制了公式。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    相关资源
    最近更新 更多