获取数组中的精确值

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

我有一个虚拟数组表,如下所示。 它是从查询生成的,而不是从单元格生成的:

第 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 函数时也遇到困难。

感谢您的帮助。

google-sheets-formula
1个回答
0
投票

这是一个可能的解决方案:

=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
替换为包含查找表的范围。

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