Google 表格循环 VLOOKUP 并连接结果
Posted
技术标签:
【中文标题】Google 表格循环 VLOOKUP 并连接结果【英文标题】:Google Sheets loop VLOOKUP and concatenate results 【发布时间】:2021-11-06 07:49:51 【问题描述】:我想遍历列中的值列表(即:Value1|Value2|Value3),使用这些值来 VLOOKUP 列,然后将连接的值返回到单元格中。
工作表示例:BUSINESSES.csv
ID | Business Name | Services | Tags | (Expected Outcome) |
---|---|---|---|---|
6259 | 22Handy | Business | Test1|Test2 | |
6260 | AAFMAA Wealth | Business|Financial Management | Test1|Test2|Finances|Accounting|Budgeting |
请注意,“TAGS”列是空的。这是我要返回结果(并输入公式)的地方。
目标是获取每个“服务”并查看以下单独的工作表示例:
示例:SERVICES.csv
Service Name | Tags to add |
---|---|
Financial Management | Finances|Accounting|Budgeting |
Business | Test|Test2 |
所以如果一个企业有一个“企业”的服务,那么它应该返回“Test1|Test2”
如果企业拥有“Business|Financial Management”服务,那么它应该返回“Test1|Test2|Finances|Accounting|Budgeting”,因为它正在从分配给该企业的两个服务中提取标签。
我尝试了 INDEX
、VLOOKUP
、FILTER
和 REGEXMATCH
的不同组合,但无济于事。
类似:=INDEX( FILTER( Services!A2:A, IF( REGEXMATCH( Services!A2:A, C2,))))......
【问题讨论】:
您是否尝试过 TextJoin 或 Join 与您的过滤器? @ScottCraner 我没有。我对FILTER
的经验不够,而且我一直遇到行/列不匹配错误。一旦完成所有循环,JOIN/TEXTJOIN 将非常适合编写最终输出
你有没有包含空格的标签?
@player0 是的,有些标签包含空格。不过,如果这样可以更轻松地创建公式,我可以将空格查找/替换为破折号或下划线
【参考方案1】:
尝试:
=ARRAYFORMULA(SUBSTITUTE(SUBSTITUTE(TRIM(FLATTEN(QUERY(TRANSPOSE(IFNA(VLOOKUP(
IF(IFERROR(SPLIT(C2:C, "|"))="",, SPLIT(C2:C, "|")),
G:G, SUBSTITUTE(H:H, " ", "×"), 2, 0))),,9^9))), " ", "|"), "×", " "))
【讨论】:
难以置信!我暂时使用=textjoin("|",true,filter(Services!$C2:$C, REGEXMATCH(Services!$A$2:$A, C2) ))
来解决这个问题——但它并不完美(主要是因为没有考虑到“整个单词”。但你的公式是完美的。它显示值大约需要 45 秒,因为工作表是如此巨大的,但它的工作。非常感谢你,我的男人!以上是关于Google 表格循环 VLOOKUP 并连接结果的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Google 的连接表中编写 vlookup 函数?
Google 电子表格 ArrayFormula + VLookup 转换