我有一个包含A,B和C三列的Google SpreadSheets文档.
我需要使用列A和B中值的所有可能组合填充列C.请查看捕获以查看我的意思.
我发现这在Excel中完成的,在这里,但它并没有在谷歌电子表格的工作.
该公式即使对于更多列也应该有用(例如:四个而不是两个)
我可以这样做吗?
pla*_*er0 47
在大流行后的新世界中,我们可以通过以下方式解决这个问题:
=INDEX(FLATTEN(A2:A3&" "&TRANSPOSE(B2:B4)))
Run Code Online (Sandbox Code Playgroud)
为了考虑到未来的扩展,我们可以这样做:
=INDEX(FLATTEN(FILTER(A2:A; A2:A<>"")&" "&TRANSPOSE(FILTER(B2:B; B2:B<>""))))
Run Code Online (Sandbox Code Playgroud)
对于 3 列:
=INDEX(FLATTEN(FLATTEN(
FILTER(A2:A; A2:A<>"")&" "&TRANSPOSE(
FILTER(B2:B; B2:B<>"")))&" "&TRANSPOSE(
FILTER(C2:C; C2:C<>""))))
Run Code Online (Sandbox Code Playgroud)
4 列:
=INDEX(FLATTEN(FLATTEN(FLATTEN(
FILTER(A2:A; A2:A<>"")&" "&TRANSPOSE(
FILTER(B2:B; B2:B<>"")))&" "&TRANSPOSE(
FILTER(C2:C; C2:C<>"")))&" "&TRANSPOSE(
FILTER(D2:D; D2:D<>""))))
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请参阅:/sf/answers/5191249801/
Max*_*rov 14
更新201810
原始公式崩溃的大数据集.我描述了一种在这里使用任何大小的数据进行交叉连接的方法.
尝试配方:
=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))))
结果:
car red
train red
car yellow
train yellow
car blue
train blue
Run Code Online (Sandbox Code Playgroud)
式是在细胞C2和E2,
C2 是:
=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))) )
Run Code Online (Sandbox Code Playgroud)
并E2是:
=ArrayFormula(transpose(split(rept(concatenate(C2:C&char(9)),counta(D2:D)),char(9)))&" "&transpose(split(concatenate(rept(D2:D&char(9),counta(C2:C))),char(9))) )
Run Code Online (Sandbox Code Playgroud)
现在我们有了LAMBDALambda 辅助函数,我们可以使用以下方法很好地解决这个问题REDUCE
=ARRAYFORMULA(\n LET(range,A2:C,\n SPLIT(\n REDUCE(,\n SEQUENCE(COLUMNS(range)),\n LAMBDA(acc,i,\n TOCOL(acc&"\xce\xb6"&TOROW(INDEX(range,,i),3)))),\n "\xce\xb6")))\nRun Code Online (Sandbox Code Playgroud)\n\n
| 归档时间: |
|
| 查看次数: |
14076 次 |
| 最近记录: |