我有3列数据,需要连接同一列的两个值,但由单独的列(列A)分组。在下面的示例中,我需要将Brand + Product Type (C列)组合在一起,总共有66个串联的值。
如何获得所需的连接值?有上千个我需要合并的。
ABC扩散器
ABC冷热疗法
ABC加湿器
DEF Oils
定义扩散器
DEF Candles
DEF空气清新剂
等。

发布于 2021-01-24 05:12:19
此解决方案适用于支持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))https://stackoverflow.com/questions/65864021
复制相似问题