首页 > 解决方案 > 仅使用 Join 和 Filter 函数返回唯一值

问题描述

我有一个详细的摩托车零件数据集。我正在尝试根据来自多个工作表的数据创建一个年份、品牌、模型表。

这是我在目标 Google 表格中的功能:

=JOIN(",",FILTER('YMM Handlebars'!H:H,'YMM Handlebars'!A:A=A8))

由于数据量大,我遇到了这个错误的问题:

Error
Text result of JOIN is longer than the limit of 50000 characters.

如果我可以删除从过滤器返回的重复值,我可以得到 Join down 的字符数。我尝试了这两种方法,但都没有解决重复值问题:

=JOIN(",",UNIQUE(FILTER('YMM Handlebars'!H:H,'YMM Handlebars'!A:A=A8)))
=JOIN(",",FILTER(UNIQUE('YMM Handlebars'!H:H),'YMM Handlebars'!A:A=A8))

关于如何解决的任何想法?提前感谢您抽出宝贵的时间。

标签: arraysjoingoogle-sheetsfiltergoogle-sheets-query

解决方案


你可以细分你的范围:

=JOIN(",", FILTER('YMM Handlebars'!H1:H1000,    'YMM Handlebars'!A1:A1000=A8))&","&
 JOIN(",", FILTER('YMM Handlebars'!H1001:H2000, 'YMM Handlebars'!A1001:A2000=A8))

或不使用JOIN

=ARRAYFORMULA(QUERY(QUERY(IF('YMM Handlebars'!A:A=A8, 'YMM Handlebars'!H:H&",", ), 
 "where Col1 is not null", 0),, 9^9))

更新:

=ARRAYFORMULA(QUERY(UNIQUE(FILTER(TRIM('YMM Handlebars'!H:H)&",", 
 'YMM Handlebars'!A:A=A8)),, 9^9))

在此处输入图像描述


推荐阅读