有没有一种方法可以在Excel中使用3个数组创建一个动态表?

jc3wubiy  于 2023-10-21  发布在  其他
关注(0)|答案(3)|浏览(121)

我有3个文本数组,来自3个不同的表。例如{a,B}、{w,x,y}和{@,#},我需要动态创建一个表,如下所示:
| 列A|色谱柱B|列C|
| --|--|--|
| 一|W|在|
| 一|W|数量|
| 一|X|在|
| 一|X|数量|
| 一|y|在|
| 一|y|数量|
| B| W|在|
| B| W|数量|
| B| X|在|
| B| X|数量|
| B| y|在|
| B| y|数量|
尝试使用Map功能,但挣扎在我自己和MS网站上的文档没有帮助我太多。有什么想法吗?

k7fdbhmy

k7fdbhmy1#

尝试沿着行的东西:

·单元格A1中使用的公式

=LET(
     _x, {"a","b"},
     _y, {"w","x","y"},
     _z, {"@","#"},
     _w, TOCOL(_x&"|"&TOCOL(TOCOL(_y)&"|"&_z)),
     SORT(TEXTSPLIT(TEXTAFTER("|"&_w,"|",{1,2,3}),"|")))

还有一点:

·单元格E1中使用的公式

=TEXTSPLIT(ARRAYTOTEXT({"a ";"b "}&TOROW({"w ";"x ";"y "}&{"@","#"}))," ",", ")
50pmv0ei

50pmv0ei2#

在这种特殊的单字符情况下,您可以使用:用途:
=MID(TOCOL({"a";"b"}&TOROW({"w";"x";"y"}&{"@","#"})),{1,2,3},1)
在这种情况下不需要lambda;将水平阵列与垂直阵列相结合创建了2的所有组合。
如果我们将它们展平以与下一个转置数组合并组合,则组合后的数组上也会发生相同的情况。
因为它会为每个单元格创建一个包含3个字符的组合的1列溢出范围,所以我们可以使用MID(array,sequence(,3),1){1,2,3}来拆分字符。把它们洒到一个

ia2d9nvy

ia2d9nvy3#

使用RepeatCol Lambda函数组合合并列

=LET(data1,B3:B5,data2,B7:C7,data3,B9:C11,
    RepeatCol,LAMBDA(data,repeats,IF(SEQUENCE(,repeats),data)),
    a,TOCOL(data1,1),b,TOCOL(data2,1),c,TOCOL(data3,1),
    ra,ROWS(a),rb,ROWS(b),rc,ROWS(c),rt,ra*rb*rc,
HSTACK(TOCOL(RepeatCol(a,rt/ra)),
    TOCOL(RepeatCol(TOCOL(RepeatCol(b,rc)),ra),,1),
    TOCOL(RepeatCol(c,rt/rc),,1)))

相关问题