You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets中筛选Interval列并保留Page列首次出现值?

问题描述

现有如下表格数据:

序号日期PageInterval
1# DayDay 11Day 1 - Pg. 1
2# DayDay 22Day 2 - Pg. 2
3# DayDay 33Day 3 - Pg. 3 of 2
4# DayDay 43Day 4 - Pg. 3 of 2
5# DayDay 53Day 5 - Pg. 3 of 2
6# DayDay 63Day 6 - Pg. 3 of 2
7# DayDay 73Day 7 - Pg. 3 of 2
8# DayDay 83Day 8 - Pg. 3 of 2
9# DayDay 93Day 9 - Pg. 3 of 2
10# DayDay 103Day 10 - Pg. 3 of 2
11# DayDay 113Day 11 - Pg. 3 of 2
12# DayDay 123Day 12 - Pg. 3 of 2
13# DayDay 133Day 13 - Pg. 3 of 2
14# DayDay 143Day 14 - Pg. 3 of 2
15# DayDay 153Day 15 - Pg. 3 of 2
16# DayDay 162Day 16 - Pg. 2
17# DayDay 172Day 17 - Pg. 2
18# DayDay 182Day 18 - Pg. 2
19# DayDay 192Day 19 - Pg. 2
20# DayDay 202Day 20 - Pg. 2

需求:使用FILTER函数筛选Interval列,仅保留Page列中每个值的首次出现记录,预期结果为:

Day 1 - Pg. 1
Day 2 - Pg. 2

当前使用公式FILTER(Interval,Page<=2)得到的结果不符合预期,返回了所有Page≤2的记录,而非每个Page值的首次出现。

解决方案

要实现仅保留每个Page值的首次出现,需结合FILTER与MATCH函数标记首次出现的行,具体公式如下:

结构化表格版本

如果数据是Excel结构化表格(带表头),使用:

=FILTER(Interval, MATCH(Page, Page, 0) = ROW(Page) - ROW(Page[#Headers]))

普通单元格区域版本

若数据在普通单元格区域(例如Page列是C2:C21,Interval列是D2:D21),使用:

=FILTER(D2:D21, MATCH(C2:C21, C2:C21, 0) = ROW(C2:C21) - ROW(C2) + 1)

公式说明

  1. MATCH(Page, Page, 0):对每一行的Page值,返回它在整个Page列中第一次出现的相对行号
  2. ROW(Page) - ROW(Page[#Headers]):计算当前行在数据区域内的起始行号(从1开始)
  3. 当两者相等时,说明该行是对应Page值的首次出现,FILTER会保留该行的Interval内容

仅保留Page≤2的首次出现

如果只需要筛选Page≤2的首次出现记录,在条件中增加额外筛选即可:

=FILTER(Interval, (MATCH(Page, Page, 0) = ROW(Page) - ROW(Page[#Headers])) * (Page <= 2))

执行后将得到预期结果:

Day 1 - Pg. 1
Day 2 - Pg. 2

内容的提问来源于stack exchange,提问作者Bruno Silva

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 07:03:18