我已经过滤了我的 Excel 数据,现在我想给行编号。我怎么做?
Posted
技术标签:
【中文标题】我已经过滤了我的 Excel 数据,现在我想给行编号。我怎么做?【英文标题】:I have filtered my Excel data and now I want to number the rows. How do I do that? 【发布时间】:2014-11-28 11:27:24 【问题描述】:基本上,我要做的就是在按特定标准过滤我的数据后插入一个新列,然后在该列中插入连续的数字,每行一个。即,我在一列中有这样的数据:
阿姆斯特朗,约翰
比蒂,简
库姆斯,约翰
我希望在它旁边运行一个新列,所以它看起来像:
1 阿姆斯特朗,约翰
2 比蒂,简
3 库姆斯,约翰
我尝试输入前几个数字,然后向下拖动以填充列的其余部分,但是当我这样做时,由于某种原因,所有数字都变为 1。
【问题讨论】:
【参考方案1】:试试这个:
在第一行设置值 1(例如单元格 A1
)
在下一行设置:=A1+1
最后自动完成剩余的行
【讨论】:
谢谢,但这不起作用。它在输入公式之前一直有效,但是当您拖动自动完成框时,一切都会变成 1。 从第 2 行而不是第 1 行拖动(从 =A1+1) 我是从第二行拖过来的。仍然把一切都变成 1。 我假设第一个单元格是 A1 如果不是(例如它是 F3)第二行中的 sn-p 应该是 =F3+1 ...e.t.c 第一个单元格是 B12。我在 B12 中放了 1。然后在下一个单元格中,恰好是 B13,我输入公式'=B12+1',结果为 2。然后当我选择 B13 并向下拖动时,每个单元格都会继续读取。但是由于我的过滤器被应用,B13 之后的下一个单元格实际上是 B31,所以这可能很重要。【参考方案2】:好的,我找到了这个问题的正确答案here
步骤如下:
-
过滤您的数据。
选择要添加编号的单元格。
按 F5。
选择特殊。
选择“仅可见单元格”并按 OK。
现在在过滤数据的第一行(标题下方)输入以下代码:
=MAX($"Your Column Letter"$1:"Your Column Letter"$"过滤器的当前行 - 1") + 1
例如:
=MAX($A$1:A26)+1
将从单元格 A27 开始应用。
按住 Ctrl 并按 Enter。
请注意,这只适用于范围,不适用于表格!
【讨论】:
【参考方案3】:我遇到了同样的问题。我不是专家,但这是我们使用的解决方案: 在过滤数据之前,首先创建一个临时列,以使用原始排序顺序填充整个数据集。自动编号临时“原始排序顺序”列。现在过滤您的数据。将过滤后的数据复制并粘贴到新工作表中。这只会将过滤后的数据移动到新工作表中,这样您的行号就会变得连续。现在自动编号您想要的字段。返回到您的原始工作表并删除过滤的行。将次要工作表中新编号的数据复制并粘贴到原始工作表的底部。然后清除您的过滤器并按临时“原始排序顺序”列对工作表进行排序。这会将您新编号的数据恢复到其原始顺序,然后您可以删除临时列。
【讨论】:
【参考方案4】:添加一列,例如“已选择”。 然后过滤您的数据。 转到“已选择”列。为所有行提供任何代理文本或数字。比如 '1' 或 'A' - 现在你的隐藏行是空白的 现在,清除过滤器并使用排序 - 两个级别 排序方式 - 'Selected' Ascending - 这会在底部留下空白单元格 添加排序级别 - '任何你想要的列'你的订单
现在,你为什么不自己拖动自动填充。
糟糕,我在这里没有名声。
【讨论】:
【参考方案5】:我同样需要为另一列上的每个值填写一个序列系列。我尝试了上述所有答案,但无法解决问题。我用一个简单的 VBA 宏解决了这个问题。
我的数据具有相同的结构(但有 3000 行):
N2 是过滤表的列; N3 是我要填充系列的列;A |乙
N2 | N32>
1 | 1
2 | 1
3 | 1
1 | 2
6 | 1
4 | 1
2 | 2
1 | 3
5 | 1
下面是代码:
> Sub Seq_N3() ' ' Seq_N3 Macro ' Sequence numbering of N3 based on N2 value
> do N2
> Dim N2 As Integer
> Dim seq As Integer
>
> With ActiveSheet
>
> For N2 = 1 To 7 Step 1
> seq = 1 '
> .Range("B2").Select '
>
> Do While ActiveCell.Offset(0, -1).Value2 <> 0
>
> If ActiveCell.Offset(0, -1).Value2 = N2 Then
> ActiveCell.Value2 = seq
> seq = seq + 1
> ActiveCell.Offset(1, 0).Select
> Else
> ActiveCell.Offset(1, 0).Select
> End If
>
> Loop
>
> Next N2
>
> End With End Sub
希望对你有帮助!
【讨论】:
【参考方案6】:第 1 步:突出显示您要填充的列的整个列(不包括标题)
第 2 步:(使用 Kutools)在插入下拉菜单中,单击“填充自定义列表”
第 3 步:点击编辑
第 4 步:创建您的列表(例如:1、2)
第 5 步:选择新的自定义列表,然后点击“填充范围”
完成!!!
【讨论】:
【参考方案7】:试试这个功能:
=SUBTOTAL(3, B$2:B2)
您可以在此blog entry 中找到更多详细信息。
【讨论】:
【参考方案8】:最简单的方法是删除过滤器,从总数据顶部填充系列。重新过滤所需的数据,将数字列表复制到新工作表中(这应该只是您要添加编号的总行)粘贴到 A1 列。将“1”添加到B1列,右键单击并按住然后向下拖动到数字末尾并选择“填充系列”。现在返回带有过滤器的列表,并在右侧的下一列“VLOOKUP”中将过滤后的数字与您粘贴到新工作表中的列表相对应,并返回第二个值。
【讨论】:
【参考方案9】:最好的选择是使用公式 =Row()-Row(ColumnHeaderCell) 然后将其应用于整个列 [但这不适用于过滤器行号]
【讨论】:
以上是关于我已经过滤了我的 Excel 数据,现在我想给行编号。我怎么做?的主要内容,如果未能解决你的问题,请参考以下文章