从两个单独的列表创建组合列表
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)))," ",""))
并使用它来排序:
=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))
以上是关于从两个单独的列表创建组合列表的主要内容,如果未能解决你的问题,请参考以下文章