繁体   English   中英

我已经过滤了我的 Excel 数据,现在我想对行进行编号。 我怎么做?

[英]I have filtered my Excel data and now I want to number the rows. How do I do that?

基本上,我要做的就是在按特定标准过滤我的数据后插入一个新列,然后在该列中插入连续的数字,每行一个。 即,我在一列中有这样的数据:

阿姆斯特朗,约翰

比蒂,简

库姆斯,约翰

我希望在它旁边运行一个新列,所以它看起来像:

1 阿姆斯特朗,约翰

2 比蒂,简

3库姆斯,约翰

我尝试输入前几个数字,然后向下拖动以填充列的 rest,但是当我这样做时,由于某种原因,所有数字都变为 1。

好的,我在这里找到了这个问题的正确答案

以下是步骤:

  1. 过滤您的数据。
  2. 选择要添加编号的单元格。
  3. 按 F5。
  4. 选择特殊。
  5. 选择“仅可见单元格”并按“确定”。
  6. 现在在过滤数据的顶行(在标题下方)输入以下代码:

    =MAX($"您的列字母"$1:"您的列字母"$"过滤器的当前行 - 1") + 1

    前任:

    =MAX($A$1:A26)+1

    这将从单元格 A27 开始应用。

  7. 按住 Ctrl 并按 Enter。

请注意,这仅适用于范围,而不适用于表格!

试试这个功能:

=SUBTOTAL(3, B$2:B2)

您可以在此博客条目中找到更多详细信息。

我有同样的问题。 我不是专家,但这是我们使用的解决方案:在过滤数据之前,首先创建一个临时列以使用原始排序顺序填充整个数据集。 自动编号临时“原始排序顺序”列。 现在过滤您的数据。 将过滤后的数据复制并粘贴到新工作表中。 这只会将过滤后的数据移动到新工作表中,以便您的行号变得连续。 现在自动编号您想要的字段。 返回原始工作表并删除过滤后的行。 将辅助工作表中新编号的数据复制并粘贴到原始工作表的底部。 然后清除过滤器并按临时“原始排序顺序”列对工作表进行排序。 这会将您新编号的数据放回其原始顺序,然后您可以删除临时列。

首先添加一列,例如“已选择”。 然后过滤您的数据 转到“已选择”列。 所有行提供任何代理文本或数字 像“1”或“A”——现在你的隐藏行现在是空白的清除过滤器和使用排序——两个级别排序——“选定”升序——这在底部留下空白单元格添加排序级别——“你想要的任何列”命令

现在,你为什么不自己拖动自动填充

哎呀,我在这里没有名声。

我同样需要为另一列上的每个值填充一个带有序列系列的列。 我尝试了上面的所有答案,但无法解决问题。 我用一个简单的 VBA 宏解决了它。

我的数据具有相同的结构(但有 3000 行):

  • N2 是表被过滤的列;
  • N3 是我想填充系列的列;

一个 |

氮气 | N3

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

希望能帮助到你!

第 1 步:突出显示要填充的列的整列(不包括标题)

第 2 步:(使用 Kutools)在插入下拉列表中,单击“填充自定义列表”

第三步:点击编辑

第 4 步:创建您的列表(例如:1、2)

第 5 步:选择您的新自定义列表,然后单击“填充范围”

完毕!!!

最简单的方法是删除过滤器,从总数据的顶部填充系列。 重新过滤所需的数据,将数字列表复制到新工作表中(这应该只是您要添加编号的总行数),然后粘贴到 A1 列中。 将“1”添加到 B1 列,右键单击并按住然后向下拖动到数字末尾并选择“填充系列”。 现在返回带有过滤器的列表,并在右侧的下一列“VLOOKUP”中根据您粘贴到新工作表中的列表过滤数字并返回第二个值。

最好的选择是使用公式=Row()-Row(ColumnHeaderCell)然后将其应用于整个列 [但这不适用于过滤器行号]

尽管此线程中描述的方法允许将序号添加到过滤范围内的可见单元格,但如果当前被过滤器隐藏的单元格具有现有值,则执行此操作的公式可能会中断。 理想情况下,您只需在添加公式以对其进行编号后复制过滤范围 - 但由于所选范围中的中断,您将收到“无法执行”消息。 解决方法是使用当前空白的辅助列。

以下说明(取自我在专家交流线程中的回答)假定过滤范围(单元格 B5:B7147)需要从单元格 B116 开始的新序列号。

整体方法使用 F5...Special Cells to select 只是我们目前关心的单元格。 我们将使用辅助列来存储中间值。

起点是应用了过滤器,您想更新 B 列中从单元格 B116 开始的数字。 我们将使用 K 列作为辅助列。 我们注意到数据延伸到第 7147 行。

将 9918(下一个序列号)放入单元格 K116。 然后 select 从 K117 到 K7147 的单元格范围。 现在使用 F5...Special Cells...Visible cells 功能区项到 select 只是列 K 中需要新序号的单元格。 单击公式栏中的并键入如下所示的公式。 按住 Control 键并按 Enter 以将序列号放入可见单元格中。

`=MAX(K$116:K116)+1`

现在清除自动筛选。 在地址栏中(就在行号和列字母的交叉点上方),键入 K5:K7147 并按 Enter。 这将立即 select 这些单元格,而无需将 cursor 向下拖动数千行。

接下来,使用 F5...Special Cells...Blanks 到 select 列 K 中的空白单元格。在单元格 K5 中 Control + 输入如下所示的公式。

=IF(B5="","",B5)

使用地址栏的技巧到 select K5:K7147。 复制这些单元格。 接下来,使用地址栏技巧到 select B5:B7147。 现在做一个选择性粘贴...值。 您现在在 B 列中有所需的数字,没有公式,也没有任何最初隐藏的值被覆盖。

最后,您可以清除(或删除)辅助列 K。

尝试这个:

在第一行设置值 1 (例如单元格A1

在下一行设置: =A1+1

最后自动完成剩余的行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM