我试图找出为什么Google表格中的过滤/查询如此破碎,我的机智已经结束了。我有一张表格,其中包含一些关于我正在参加的练习考试的数据,我正试图从该表格中提取一些数据来计算统计数据。我用相关的东西做了一个shareable document所以你可以看到我的意思。
我的原始数据在TestScores
表中,我制作了一张TESTSTATS
表来测试从TestScores
中提取数据的不同方法。在我的例子中,我只是试图从范围TestScores!B2:B
中提取唯一的日期,并且我在TESTSTATS
中添加了一些不同的方法(从每个方法中删除了等号,因此每个都可以通过放入等号)。
我试过的方法:
=UNIQUE(TestScores!B2:B)
=UNIQUE(FILTER(TestScores!B2:B, TestScores!B2:B<>""))
=UNIQUE(FILTER(TestScores!B2:B, TestScores!B2:B<>0))
=UNIQUE(FILTER(TestScores!B2:B, NOT(ISBLANK(TestScores!B2:B))))
=UNIQUE(QUERY(TestScores!B2:B, "select B"))
=ARRAY_CONSTRAIN(UNIQUE(QUERY(TestScores!B2:B, "select B")), ROWS(UNIQUE(TestScores!B2:B))+1,5)
你会看到每一个,当通过在公式前添加=
激活时返回正确的数据,但还附加500个空行,看起来是空的,但实际上是空字符串("")
。这使得它很难处理,因为我的工作表中有很多计算依赖于彼此。我也不想指定我的范围的显式结束,并且更愿意保持它们开放式结束(B2:B
而不是B2:B17
)所以一切都会在添加新记录时自动更新。
我究竟做错了什么?为什么返回的数据附加了一堆空单元格,以及为什么500具体(考虑到我的源数据是29行还是30行,这取决于你是否包含标题)?
从TESTSTATS
中只有两行开始,必须添加更多行以放置输出。谷歌似乎一次选择500行(从最后一个必需的单元格)。 “为什么?”必须是谷歌的问题。
如果您知道输出需要14行,并且将TESTSTATS
的大小增加到16,则不会再添加任何行。由于你需要扩展的空间,你不能扩展到16并避免进一步的问题,但你可以允许一些空间,比如说30行,并删除一些额外的,或者,如果30变得不足(当表单射到540行时) )删除不需要的行,但将工作表大小设置为60行 - 依此类推。