【发布时间】:2018-05-30 12:11:06
【问题描述】:
我有一个 35 列和 1000 多行的谷歌表。我只想从第 5 列中提取唯一数据,并将所有剩余的 34 个对应值提取到新工作表中。我的第 4 行是日期列,所以当第 5 列的唯一值被提取到新工作表时,日期应该是最新的。
【问题讨论】:
-
酷!你打算怎么做? :)
-
我没有工作代码,但您可以参考here 获取您需要的功能。
我有一个 35 列和 1000 多行的谷歌表。我只想从第 5 列中提取唯一数据,并将所有剩余的 34 个对应值提取到新工作表中。我的第 4 行是日期列,所以当第 5 列的唯一值被提取到新工作表时,日期应该是最新的。
【问题讨论】:
我在 Quora 上为你回答了这个问题,但由于没有其他人在这里得到答案,我想我会加倍发布它,以便为未来的 Google 搜索提供更多帮助。
下面的代码是一个基本模板,应该可以解决您的问题,但我会更详细地帮助您了解它在做什么以及它是如何工作的。
=FILTER(
SORT(Work!A:D,1,FALSE),
SORT(Work!A:A,1,FALSE) = UNIQUE(SORT(Work!A:A,1,FALSE))
)
=FILTER(range to be filtered, conditions that dictate what will pass the filter, more conditions)
=SORT(Range, by column, (true = ascending,false = descending (reverse) order))
因此,我们应用了 FILTER 并使用第一个 SORT 来指示要以相反的顺序对整个工作表进行排序(我使用了相反的顺序,因为我的日期是按顺序排列的,这在表单输入数据或大多数情况下是典型的标准电子表格设置)。如果您的工作表已经按相反的日期顺序设置,那么您可以删除所有 SORT 公式并说如下内容:
=FILTER(Work!A:D,Work!A:A = UNIQUE(Work!A:A))
现在,在我的示例中,我写道:
SORT(Work!A:D,1,FALSE)
这里要注意的重要部分是,由于这是定义我们希望返回的范围的过滤器部分,因此您必须指定要在输出中看到的所有行。我放了 Work!A:D,因为那是我正在使用的工作表的大小。由于您使用的是 35 列,我相信您会使用 A:AI。
接下来,您只标识您希望唯一排序的列,并通过指定 SORT(Sheet!DesiredColumn:DesiredColumn,1,FALSE) 来实现。工作表的每个部分都必须按相同的方向排序才能得到正确的结果。
最后,我们将排好序的列与同一排好序列的唯一数组进行比较,这就是SORT(Work!A:A,1,FALSE) = UNIQUE(SORT(Work!A:A,1,FALSE)) 的原因。
这只是将行与自身的唯一版本进行比较,并且只会按照您指定的顺序返回唯一选项,以首先获取最新条目。 通过将唯一排序的条目作为排除参数输入主过滤器范围,您将能够检索所需列中每个唯一条目的整行。 因此,您的最终公式可能类似于:
=FILTER(
SORT(Sheet1!A:AI,1,FALSE),
SORT(Sheet1!E:E,1,FALSE) = UNIQUE(SORT(Sheet1!E:E,1,FALSE))
)
其中 Sheet1 是您从中排序数据的工作表的名称。 希望这可以帮助您解决现在和将来的数据问题。
【讨论】: