查找,匹配和并置

问题描述 投票:3回答:3

我需要一个公式/函数来连接一列和多行中的单元格值。匹配条件将应用于其他列。这是我要做的事情的示例:

Islington | "Bunhill"   | EC2M  
Islington | "Bunhill"   | EC2Y  
Islington | "Bunhill"   | N1  
Barnet    | "Burnt Oak" | HA8  
Barnet    | "Burnt Oak" | NW7  
Barnet    | "Burnt Oak" | NW9  

最终结果需要看起来像这样:

Islington | "Bunhill"   | EC2M, EC2Y, N1  
Barnet    | "Burnt Oak" | HA8, NW7, NW9 

[基本上,我需要从第二列中删除所有重复项,但是要保存与每个重复项配对的第三列中的数据,并将其连接在一个单元格中。

google-apps-script google-sheets concatenation lookup formulas
3个回答
2
投票

您可以使用功能来逐步进行操作。从UNIQUE功能开始。将其放在方便列出B列的所有唯一值的单元格中:

=UNIQUE(B:B)

获取B列中的所有唯一值。Google Support - Unique Function

UNIQUE函数的结果将如下所示:

“唯一函数”

现在您已拥有B列中的所有唯一值,您可以使用FILTER函数检索与该唯一值匹配的所有行。

=FILTER(D1:D6, B1:B6=A8)

FILTER函数将所有结果列在该列下方,但是您可以使用CONCATENATE函数来避免这种情况。

FILTER函数的结果:

“过滤器功能”

CONCATENATE的结果:

“连接功能”

您需要调整FILTER函数以现在使用D列而不是C列。

=CONCATENATE(FILTER(D1:D6, B1:B6=A8))

这解决了获取多行数据的问题,但是现在值之间没有分隔符。

要解决该问题,您可以创建第四列,并在其末尾添加一个逗号的函数:

“添加了带有逗号的列”

最后有一个多余的逗号问题,您可以使用LEFT函数将其消除:

“左功能”


1
投票

如果不需要太多的话,没有脚本就很实用。假设EC2M在C2中,D1为空白,并且您的数据在D2中进行了排序:

=if(B1=B2,D1&", "&C2,C2) 

以及在E2中,两个公式都被复制为适合:

=B2=B3 

全选,Ctrl + c,编辑,特殊粘贴,仅在顶部粘贴值并过滤以选择和删除列E中带有TRUE的行。


0
投票

TEXTJOIN与CONCATENATE相比有2个优点:(1)可自定义的分隔符,(2)可以跳过空格。

示例:

AA | BB | CC | __ | EE

= TEXTJOIN(“,”,TRUE,A1:E1)

将产生:AA,BB,CC,EE

(跳过空白的DD并在除最后一个词之外的每个词之间加一个逗号)

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