【问题标题】:I have filtered my Excel data and now I want to number the rows. How do I do that?我已经过滤了我的 Excel 数据,现在我想给行编号。我怎么做?
【发布时间】:2014-11-28 11:27:24
【问题描述】:

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

阿姆斯特朗,约翰

比蒂,简

库姆斯,约翰

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

1 阿姆斯特朗,约翰

2 比蒂,简

3 库姆斯,约翰

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

【问题讨论】:

    标签: excel filtering


    【解决方案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

    步骤如下:

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

      =MAX($"Your Column Letter"$1:"Your Column Letter"$"过滤器的当前行 - 1") + 1

      例如:

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

      将从单元格 A27 开始应用。

    7. 按住 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) 然后将其应用于整个列 [但这不适用于过滤器行号]

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2016-03-08
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 2011-06-26
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多