【发布时间】:2017-05-14 20:00:08
【问题描述】:
我有一个包含两列数据的 Google 表格。 A 随着许多重复项(基于粗略的时间戳)单调增加,而B 本质上是随机的。底部有许多空行等待未来的数据。它类似于以下内容:
A B
1 5 43
2 5 77
3 13 8
4 21 34
5 27 68
6 27 90
7
8
9
10
我正在尝试编写一些公式来检查列中的所有(非空)值除了最后一个。比如我想求B不包括最新值的最大值,所以结果应该是B2中的77,而不是B6中的90。
如果范围内的值严格递增且唯一,我可以将A 的值过滤到C,排除等于最大值的任何值(仅最后一个条目),然后取@987654331那个范围的@。但是,我的数据不具有该属性;最终值可能会被重复,并且会不恰当地忽略重复的值。
C D E
1 =FILTER(A:A, A:A < MAX(A:A)) =MAX(C:C) This produces A4's 21 instead of A5's 27.
如果我们要使用第三列递增索引,则类似的方法会起作用:
A B C D E
1 5 43 9 =MAX(FILTER(C:C, A:A <> "")) Value of index in last populated row.
2 5 77 10 =MAX(FILTER(A:A, C:C < D1)) Maximum value from a row with lower index.
3 13 8 11
4 21 34 12
5 27 68 13
6 27 90 14
7 15
8 16
9 17
10 18
但我正在寻找一种不需要修改原始电子表格的解决方案,因为这并不总是可行的。我不能只用一个索引列创建一个新的IndexSheet,然后像这样加入它......
A B C
1 5 43 =MAX(FILTER(IndexSheet!A:A, A:A <> ""))
2 5 77 =MAX(FILTER(A:A, IndexSheet!A:A < C1))
...
...因为这要求IndexSheet 具有与数据表相同的行数,并且会随着更多数据的添加而中断。
在不修改原始数据表的情况下,或依赖数据的属性(除了数值为数字和行为空或满),有没有办法在排除最后一个值的同时对一个范围执行聚合计算?
【问题讨论】:
标签: google-sheets