从两个单独的列表创建组合列表

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从两个单独的列表创建组合列表相关的知识,希望对你有一定的参考价值。

我正在使用Google表格创建一个包含两组数据的产品列表。我想知道是否有一个功能可以有效地创建一个列表,这是两个单独列表的产品。

我可以通过多种方式实现这一点,例如创建一个数组,然后使用偏移计算,我将输出列复制下来,但我希望找到一个解决方案,将两个列表作为数组并输出所有组合。

我想这样做,因为列表长度是动态的。

我看过=list_1;list_2,但这只是将第二个列表放在第一个列表下,但它将它作为单个单元格函数。

我已经创建了一个电子表格,说明了我正在努力实现的目标以及迄今为止我实现的目标......

https://docs.google.com/spreadsheets/d/1Q3lexm06utmI1IE2HmjtNjBKHZc771KVNp1dDjL3jxs/edit?usp=sharing

答案

如果列表位于A和B列中,请将其放在C列中并向下复制,直到两个列表长度的乘积长度为止。

=CONCAT(INDEX(A:A,INT((ROW()-1)/COUNT(B:B))+1),INDEX(B:B,MOD(ROW()-1,COUNT(B:B))+1))

我想你可以抛出一些隐藏输出的逻辑,如果你走得太远然后只填充整个列。

这是改编自here

另一答案

我在stackoverflow.com上的其他地方找到了答案。

答案是:= ArrayFormula(transpose(split(rept(concatenate(A2:A&char(9)),counta(B2:B)),char(9)))&“”&transpose(split(concatenate(rept)(B2: B&char(9),counta(A2:A))),char(9))))

我在这里找到了

Generate all possible combinations for Columns in Google SpreadSheets

另一答案

将它包装成SUBSTITUTE以摆脱那个空间:

=ARRAYFORMULA(SUBSTITUTE(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(A3:A&CHAR(9)),COUNTA(B3:B)),CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(B3:B&CHAR(9),COUNTA(A3:A))),CHAR(9)))," ",""))

0

并使用它来排序:

=ARRAYFORMULA(SORT(SUBSTITUTE(
 TRANSPOSE(SPLIT(REPT(CONCATENATE(A3:A&CHAR(9)),COUNTA(B3:B)),CHAR(9)))&" "&
 TRANSPOSE(SPLIT(CONCATENATE(REPT(B3:B&CHAR(9),COUNTA(A3:A))),CHAR(9)))," ",""),1,1))

0

以上是关于从两个单独的列表创建组合列表的主要内容,如果未能解决你的问题,请参考以下文章

组合多个谓词不起作用

从片段访问数据库以在列表中显示

带有两个列表片段的可滚动布局

如何从一组中继容器中组合片段?

从活动创建片段时getView返回null

从一个列表创建两个列表