Google sheets 从两个单独的列表创建一个组合列表
我正在使用GoogleSheets创建一个包含两组数据的产品列表。我想知道是否有一个函数可以有效地创建一个列表,它是两个单独列表的乘积 我可以通过多种方式实现这一点,比如创建一个数组,然后使用偏移量计算,我将其复制到输出列,但我希望找到一个解决方案,将两个列表作为数组并输出所有组合 我想这样做,因为列表长度是动态的 我已经看过了Google sheets 从两个单独的列表创建一个组合列表,google-sheets,Google Sheets,我正在使用GoogleSheets创建一个包含两组数据的产品列表。我想知道是否有一个函数可以有效地创建一个列表,它是两个单独列表的乘积 我可以通过多种方式实现这一点,比如创建一个数组,然后使用偏移量计算,我将其复制到输出列,但我希望找到一个解决方案,将两个列表作为数组并输出所有组合 我想这样做,因为列表长度是动态的 我已经看过了={list_1;list_2},但这只是将第二个列表放在第一个列表下,但它是作为单个单元格函数来执行的 我已经创建了一个电子表格,它说明了我正在努力实现的目标以及我迄今
={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)当公式被复制下来时,它有效地索引了各个单元格。如果您已经解决了问题,欢迎您发布问题的答案。再次感谢您的反馈。虽然我知道有一些方法可以实现所需的输出,但我的问题更侧重于找到一个解决方案,该解决方案通过在一个单元格中输入公式/函数来实现,而无需向下复制,并将两个动态长度列表作为输入。