我有一个 Excel 文件(xlsx - MS Office 2010),其中有一列(仅 A)和 3000 行。
我想对每 4 行进行过滤。
例如:
TEMP -- 1
TEMP -- 2
TEMP -- 3
TEMP -- 4
TEMP -- 5
TEMP -- 6
TEMP -- 7
TEMP -- 8
TEMP -- 9
TEMP -- 10
TEMP -- 11
TEMP -- 12
TEMP -- 13
我想要这样的结果:
TEMP -- 4
TEMP -- 8
TEMP -- 12
答案1
最简单的方法是使用OFFSET
功能。函数原型如下:
=OFFSET(range, rows, columns, height, width)
要将其应用于您的情况,请将其设置range
为第一个数据单元格(使用绝对引用,参见下面的公式),rows
将偏移量设置columns
为 0(因为我们不想移动该列),最后将其设置height
为width
1(因为我们返回单个单元格)。
因此,假设上面的数据在 A 列,您可以通过以下公式返回第 4、8 和 12 个条目:
=OFFSET($A$1, 3, 0, 1, 1) or =OFFSET($A$1, 4 - 1, 0, 1, 1)
=OFFSET($A$1, 7, 0, 1, 1) or =OFFSET($A$1, 8 - 1, 0, 1, 1)
=OFFSET($A$1, 11, 0, 1, 1) or =OFFSET($A$1, 12 - 1, 0, 1, 1)
请注意,由于是偏移量,因此您要从每个单元格中减去 1 rows
(因此要获取单元格 A4,您需要将 A1 偏移 3 行,而不是 4 行)。如果您手动输入前几个单元格,则可以使用 Excel 的自动填充功能自动对其余数据执行此操作。
您也可以使用INDIRECT
公式来实现这一点。首先,创建一个新列,其中包含您想要的行号(例如 1、5、9...)。然后,在相邻列中,将公式放在左侧单元格(带有行号)的=INDIRECT("A" & REF)
位置REF
,“A”是包含数据的列。
显然,您可以对任意数字集执行此操作。因此,如果您在 Excel 中输入以下内容:
A B C
1 D1 4 =INDIRECT("A" & B1)
2 D2 8 =INDIRECT("A" & B2)
3 D3 12 =INDIRECT("A" & B3)
4 D4
5 D5
6 D6
7 D7
8 D8
9 D9
10 D10
11 D11
12 D12
您将在 C 列中看到内容D4
、D8
和。D12
您可以使用自动填充来根据需要扩展这些公式。
答案2
使用 ROW() 运算符的“模数”运算符可让您快速过滤。在第二列中,添加如下所示的公式。请注意,我已将您的数据放在第二行的开头。然后您需要做的就是根据“0”值过滤 B 列。