使用两个数组中的两个变量进行查询

问题描述 投票:0回答:1

请参阅此链接中的我的谷歌表格。 https://docs.google.com/spreadsheets/d/1cuNkoR4Rn7Lt0u-aCB4487JnucMKYgx0ETn6R_w7-ds/edit?usp=sharing

我想使用原始数据第1列中的两个值的组合来查询原始数据。原始数据中的行数可能会有所不同。组合数组使用笛卡尔积计算,并已通过公式处理。

对于查询的每个组合,都会插入分隔行,依此类推。 预期结果显示在预期数据中。

我尝试使用 lambda 和查询(如单元格 M3 所示)。我还尝试使用过滤器和索引,所有这些都出现不接受数组值作为输入。

我寻求您的专业建议和意见。谢谢。

原始数据

第 1 栏 第 2 栏 第 3 栏 第 4 栏 第 5 栏
A aawek dsfg
B asfdklj vnv ghc dfgs
D 萨德夫 dsfg sfdg hgdfh
E 活力 dfsg sdfg gfhre
F 他们 dsfg sdfg dfsg

Col1 的组合

1 2
A B
A D
A E
A F
B D
B E
B F
D E
D F
E F

预期数据

第 1 栏 第 2 栏 第 3 栏 第 4 栏 第 5 栏
A aawek dsfg
B asfdklj vnv ghc dfgs
***** ***** ***** ***** *****
A aawek dsfg
D 萨德夫 dsfg sfdg hgdfh
***** ***** ***** ***** *****
A aawek dsfg
E 活力 dfsg sdfg gfhre
***** ***** ***** ***** *****
A aawek dsfg
F 他们 dsfg sdfg dfsg
***** ***** ***** ***** *****
.... .... .... .... ....
.... .... .... .... ....

尝试过的功能

=arrayformula(lambda(x,y,query(A3:E8,"select * where Col1='"&X&"' or Col1='"&Y&"'",1))(A13:A22,B13:B22  ))
filter lambda google-sheets-formula
1个回答
0
投票

您可以尝试:

=let(Σ,filter(A13:B,A13:A<>""),Λ,A4:E8,
     reduce(tocol(,1),sequence(rows(Σ)),lambda(a,c,vstack(a,filter(Λ,xmatch(choosecols(Λ,1),index(Σ,c))),wraprows(rept("*",5),columns(Λ),rept("*",5))))))

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.