在Google表格的一个单元格中以逗号分隔的列表显示一系列过滤值?

时间:2014-06-25 11:26:21

标签: google-sheets

两张,一张名为Core Data,一张名为ScheduleSchedule表格需要从Core Data获取有关截止日期的信息,并在截止日期顺序中显示它。 (简单的例子包括数字和字母,而不是下面给出的日期和任务。)

这是我目前在'Schedule'(特别是在此案例中为B2)中所拥有的内容:

=JOIN(", ", FILTER('Core Data'!A2:A, 'Core Data'!B2:B=A2))

它说没有匹配,所以我认为这是公式的过滤器组件的问题。但是,我已经检查了help pages,并且无法查看我已创建的条件的问题。

公式应该:

  • 获取给定范围内的所有值(A2表格中向下的单元格'Core Data'),
  • 过滤它们,以便仅选择具有特定值的那些。 (只有在'Core Data'列的同一行中的日期与B表格中A列中的单元格中的日期匹配时,才应选择Schedule中的信息。 )
  • 将所有这些值加在一起,并将它们列为逗号分隔列表。

示例(没有日期,为了方便):

Core Data表:

A | B
----- 
a | 5
b | 7
c | 5
d | 3

Schedule表(或它应该是什么样的):

A | B
---------
3 | d
5 | a, c
7 | b

知道我的公式出了什么问题或是否有更简单的方法来解决这个问题?

1 个答案:

答案 0 :(得分:0)

我在单元格中收到的错误消息是:

  

错误:在FILTER评估中找不到匹配项。

事实证明,我尝试这个公式的单元格根本没有来自过滤器的匹配(没有相应的日期)但是它没有返回空,而是抛出错误。这听起来很简单但对我来说这是一个令人讨厌的怪癖,因为细胞没有空洞,这让我觉得这个公式有问题。

虽然问题中的示例有效但您可以通过在'Schedule'表中添加额外的行来快速打破它,其中“{8”作为A列中的值和{{1中的公式}}:

B

“8”会抛出错误,因为在A | B --------- 3 | d 5 | a, c 7 | b 8 | N/A 中找不到它。

相反,在我原来的电子表格中,当我在符合指定截止日期的单元格中尝试公式时,它起作用了。

我发现解决方案here是在公式中添加'Core Data'函数来处理此问题。

所以适用于此的公式是:

IFERROR

有人不会使用Google自己的帮助表中建议的第二个=JOIN(", ", IFERROR(FILTER('Core Data'!A:A, 'Core Data'!B:B=A5))) 参数。我尝试首先放入一个空数组(IFERROR),但这引发了一个不同的错误。好像你错过了这个论点,{}知道它没有什么可以使用的,并且单元格最终得到一个漂亮的空白值。