电子表格根据与动态列

时间:2016-09-11 05:31:16

标签: google-sheets concatenation

我试图根据Sheet-1中的数据,在Sheet-2上的B:B中用逗号分隔的字符串连接作为套件一部分的所有序列号。

除了concatenate语句中的一堆if语句之外,这是否可行?我一直在努力想通过vlookup,索引/匹配来找到一种方法,可能需要一个Google表格附加组件,因为我在Excel中的搜索显示了一些可能有用的VBA选项。

Get the column that has the kit selections, need to create the action off of this match.
=MATCH(TO_TEXT($A2),Sheet-1!$A$1:$G$1,0)

Sheet-1在A2中有一个序列号列表:A,单元格B1:G1包含不同的套件编号,在每个单元格中B2:G100如果套件包含项目,它将具有' 1'另一方面,细胞是空的。

S/N        Kit1        Kit2        ...        Kit7
GF367       1           1
BW274       1                                  1
...
BSP23                   1

Sheet-2在A2中有一个套件编号:A与Sheet-1中的一个套件相关!:B1:G1。

Kit#        S/N Comma String
Kit1        GF367,BW274
Kit2        GF367,BSP23
...
Kit7        BW274

2 个答案:

答案 0 :(得分:1)

尝试使用Sheet2!B2

=mid(arrayformula(concatenate(if(index(Sheet1!$B$2:$H$4,,match(A2,Sheet1!$B$1:$H$1,0))<>"",", "&Sheet1!$A$2:$A$4,""))),3,999)

enter image description here

答案 1 :(得分:1)

假设在Sheet2的A列中是源数据第一行的转置,请在Sheet2中尝试这个!B2

=ArrayFormula(transpose(substitute(trim(
 QUERY(IF(Sheet5!B2:E,Sheet5!A2:A,),"select *",ROWS(A:A)))," ",",")))

解释

IF用于通过行标签替换源交叉选项卡式数据上的1,然后使用QUERY连接此值。

QUERY连接用空格字符分隔它们的行值。上面的公式使用此功能连接上一步产生的数据值,然后TRIM用于删除多余的空格,SUBSTITUTE用逗号替换剩余的空格。