我有一个虚拟数组表,如下所示。 它是从查询生成的,而不是从单元格生成的:
第 1 栏 | 第 2 栏 | 第 3 栏 |
---|---|---|
A | E | F |
问 | B | N |
*** | *** | *** |
T | 是 | 我 |
R | H | J |
W | X | M |
*** | *** | *** |
G | L | K |
A | O | P |
*** | *** | *** |
我想将每个“***”之间的 Col2 值连接起来,并使用连接后的值来查找最终值。 这是我预期的结果。
预期结果
第 1 栏 | 第 2 栏 | 第 3 栏 | 第 4 栏 |
---|---|---|---|
A | E | F | 苹果 |
问 | B | N | |
*** | *** | *** | |
T | 是 | 我 | 橙色 |
R | H | J | |
W | X | M | |
*** | *** | *** | |
G | L | K | 香蕉 |
A | O | P | |
*** | *** | *** |
Col2 到 Col4 查找表
ColX | ColY |
---|---|
EB | 苹果 |
YHX | 橙色 |
LO | 香蕉 |
我尝试过的
我尝试寻找偏移功能。 但我不知道如何处理偏移函数中的“cell_reference”,因为数组表实际上是通过查询创建的。 我在通过虚拟创建的数组表运行 vlookup 函数时也遇到困难。
感谢您的帮助。
这是一个可能的解决方案:
=ARRAYFORMULA(LET(
data_,A2:C11,
lkup,E2:F4,
data,IFNA(VSTACK(,data_)),
s,SEQUENCE(ROWS(data)),
R,LAMBDA(a,SORT(a,s,)),
int,SCAN(,INDEX(data,,2),LAMBDA(a,c,IF(c="***",,a&c))),
cln,IF(QUERY({int;""},"offset 1",)<>"",,int),
fll,R(SCAN(,R(cln),LAMBDA(a,c,IF(c="",a,c)))),
col4_,TOCOL(IF(COUNTIFS(fll,fll,s,"<"&s),,VLOOKUP(fll,lkup,2,0)),2),
{data_,col4_}))
将
A2:C11
替换为生成初始表的公式,并将 E2:F4
替换为包含查找表的范围。