jim*_*334 5 lookup concatenation formulas google-sheets google-apps-script
我需要一个公式/函数来连接一列和多行的单元格值。匹配条件应用于不同的列。这是我必须做的事情的例子:
Islington | "Bunhill" | EC2M
Islington | "Bunhill" | EC2Y
Islington | "Bunhill" | N1
Barnet | "Burnt Oak" | HA8
Barnet | "Burnt Oak" | NW7
Barnet | "Burnt Oak" | NW9
Run Code Online (Sandbox Code Playgroud)
最终结果需要如下所示:
Islington | "Bunhill" | EC2M, EC2Y, N1
Barnet | "Burnt Oak" | HA8, NW7, NW9
Run Code Online (Sandbox Code Playgroud)
基本上,我需要删除第二列中的所有重复项,但保存与每个重复项配对的第三列中的数据,并将其连接到一个单元格中。
您可以使用函数完成一系列步骤。从功能开始UNIQUE。将其放在可以方便列出 B 列的所有唯一值的单元格中:
=UNIQUE(B:B)
Run Code Online (Sandbox Code Playgroud)
获取 B 列中的所有唯一值 。Google 支持 - 唯一函数
UNIQUE 函数的结果将如下所示:

现在您已拥有 B 列中的所有唯一值,您可以使用 FILTER 函数检索与该唯一值匹配的所有行。
=FILTER(D1:D6, B1:B6=A8)
Run Code Online (Sandbox Code Playgroud)
FILTER 函数列出了列中的所有结果,但您可以使用 CONCATENATE 函数来避免这种情况。
FILTER 函数的结果:

连接的结果:

您需要调整 FILTER 函数以现在使用 D 列,而不是 C 列。
=CONCATENATE(FILTER(D1:D6, B1:B6=A8))
Run Code Online (Sandbox Code Playgroud)
这解决了获取多行数据的问题,但现在值之间没有分隔符。
为了解决这个问题,您可以创建第四列,其中包含一个在末尾添加逗号的函数:

末尾有一个多余的逗号,您可以使用 LEFT 函数解决这个问题:

如果不需要太频繁,那么没有脚本就非常实用。假设EC2M在C2中,D1为空,而你的数据已排序,在D2中:
=if(B1=B2,D1&", "&C2,C2)
Run Code Online (Sandbox Code Playgroud)
在 E2 中,两个公式都被复制以适应:
=B2=B3
Run Code Online (Sandbox Code Playgroud)
全选、Ctrl+c、编辑、选择性粘贴、仅将值粘贴到顶部并过滤以选择和删除TRUEColumnE 中的行。
| 归档时间: |
|
| 查看次数: |
5139 次 |
| 最近记录: |