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

Google sheets 从两个单独的列表创建一个组合列表,google-sheets,Google Sheets,我正在使用GoogleSheets创建一个包含两组数据的产品列表。我想知道是否有一个函数可以有效地创建一个列表,它是两个单独列表的乘积 我可以通过多种方式实现这一点,比如创建一个数组,然后使用偏移量计算,我将其复制到输出列,但我希望找到一个解决方案,将两个列表作为数组并输出所有组合 我想这样做,因为列表长度是动态的 我已经看过了={list_1;list_2},但这只是将第二个列表放在第一个列表下,但它是作为单个单元格函数来执行的 我已经创建了一个电子表格,它说明了我正在努力实现的目标以及我迄今

我正在使用GoogleSheets创建一个包含两组数据的产品列表。我想知道是否有一个函数可以有效地创建一个列表,它是两个单独列表的乘积

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

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

我已经看过了
={list_1;list_2}
,但这只是将第二个列表放在第一个列表下,但它是作为单个单元格函数来执行的

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


如果您的列表位于A列和B列,请将其放在C列,然后向下复制,直到两个列表长度的乘积长度

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

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


这是改编自。

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

答案是: =ArrayFormula(转置(拆分)(报告(串联)(A2:A和字符(9)),计数A(B2:B)),字符(9))&&“&转置(拆分)(串联)(报告(B2:B和字符(9),计数A(A2:A))),字符(9)))

我在这里找到的


将其包装到
替换中
以去除该空间:

=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))

Hi@shim,我对这个解决方案很熟悉,但我一直在寻找一个单单元格公式,它在数组级别上起作用,因为正如我在文章中提到的,数组可以是动态长度的。我已经有了两个工作解决方案,其中一个是偏移解决方案偏移量(list_1,TRUNC((ROW()-ROW(list_2))/COLUMNS(list_1),0),MOD(ROW()-ROW(list_2),COLUMNS(list_1)),1,1)当公式被复制下来时,它有效地索引了各个单元格。如果您已经解决了问题,欢迎您发布问题的答案。再次感谢您的反馈。虽然我知道有一些方法可以实现所需的输出,但我的问题更侧重于找到一个解决方案,该解决方案通过在一个单元格中输入公式/函数来实现,而无需向下复制,并将两个动态长度列表作为输入。