我已经过滤了我的 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 | N3​​2>

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 数据,现在我想给行编号。我怎么做?的主要内容,如果未能解决你的问题,请参考以下文章

动态加载数据/从引用加载数据(动态过滤)

使用 Pandas 将多个日志文件数据导出到单个 Excel

DELPHI里使用CXGRID给行加序号

Excel到Datagridview过滤器和位置

16.3更新后我的所有设置会改变吗

R 省略了我的 excel 数据中的重复值