首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VLOOKUP的重复结果

VLOOKUP的重复结果
EN

Stack Overflow用户
提问于 2019-10-03 01:47:47
回答 1查看 836关注 0票数 1

我被迫更改电子表格中的公式,似乎无法让ARRAYFORMULA填充该列而不重复相同的结果。

下面是在一行中工作的代码:

代码语言:javascript
运行
复制
=ArrayFormula(SPLIT(CONCATENATE(QUERY(coreAbilities!$A$2:$E,"SELECT B,C,D,E where A = '"&VLOOKUP(C2:C,unitData!$C$2:$D,2,)&"'",0)&":"),":"))

我尝试过将它包装在VLOOKUP中,但是似乎没有什么能完成任务。

基本上,我在搜索一个由5个列组成的表,并找到一个与名称匹配的表,然而,这两个表之间的名称并不相同。我搜索的名称必须首先与另一个表中的“代码名”匹配,然后我可以搜索最后一个表。在此基础上,每个名称有3-5个匹配项,每个匹配值为5个。因此,简单地使用VLOOKUP似乎不起作用。

我尝试过VLOOKUPFILTER,希望能让自己更容易地实现这一点,但我唯一能够得到所需结果的公式(至少按正确的顺序)是使用QUERY

我没有和我所用的方法结婚,但它已经让我走到了这一步,所以我一直试图强迫它通过。

这是我的床单英雄!H2

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-03 11:37:45

QUERY不支持,而不支持字符串参数内的数组/ranges。

唯一可能的方法是在QUERY中使用regex功能,例如:

然而,TEXTJOIN属于一组限制于50000字符输入的公式,例如。这不适用于你的大型阵列。因此,双VLOOKUP是你的朋友。但是,正如您注意到的,VLOOKUP总是只能输出第一个找到的结果,而每一个下一个发现都只是第一个匹配的克隆/重复。

因此,诀窍是在vlooked值后面添加一个计数器,这将强制进行新的查找,而不是克隆以前的发现:

代码语言:javascript
运行
复制
=ARRAYFORMULA(IFERROR(VLOOKUP(COUNTIFS(IFERROR(VLOOKUP(C2:C, unitData!$C$2:$D, 2, 0)), 
 IFERROR(VLOOKUP(C2:C, unitData!$C$2:$D, 2, 0)), ROW(M2:M), "<="&ROW(M2:M))&
 IFERROR(VLOOKUP(C2:C, unitData!$C$2:$D, 2, 0)),
 {COUNTIFS(coreAbilities!A2:A, coreAbilities!A2:A, ROW(coreAbilities!A2:A), "<="&
 ROW(coreAbilities!A2:A))&coreAbilities!A2:A, coreAbilities!B2:E}, {2,3,4,5}, 0)))

更新:

代码语言:javascript
运行
复制
=ARRAYFORMULA(TRANSPOSE(QUERY(TRANSPOSE(IFERROR(SPLIT(IFERROR(VLOOKUP(
 IFERROR(VLOOKUP(C2:C, unitData!$C$2:$D, 2, 0)), 
 SPLIT(TRANSPOSE(QUERY(TRANSPOSE(QUERY(QUERY({coreAbilities!A2:A&"♦", 
 "♠"&coreAbilities!B2:B&"♠"&coreAbilities!C2:C&"♠"&coreAbilities!D2:D&"♠"&coreAbilities!E2:E,
 coreAbilities!C2:C}, "select Col1,max(Col2) group by Col1 pivot Col3", 0), 
 "offset 1", 0)),,999^99)), "♦"), 2, 0)), "♠"))), "offset 1", 0)))

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58211328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档