将序列号添加到Excel数据的15种聪明方法

2021-08-16

如果您在Excel中处理大量数据,那么最好在数据中添加序列号、行号或ID列。

序列号是数据行或记录的唯一标识符,通常从1开始,并随每一行递增。

这样,您就可以通过序列号来引用数据集中的每一条记录。

在这篇文章中,我将向您展示15种有趣的方法,您可以向数据添加行号。

使用行标题

好消息!Excel自带序列号。

在每一页的最左边是行标题,行编号按递增顺序递增。

您可以使用这些作为您的数据的序列号。

优点

  • 您不需要做任何事情来创建它们,因为它们是默认存在的。
  • 当您删除或插入一行时,这些数字将进行调整。
  • 在Excel表格内工作。

缺点

  • 你无法改变它们。
  • 您需要从单元格开始定位数据A1
  • 如果数据包含列标题,那么第一个记录的行号将从第2行开始。

使用填充手柄

这是一个神奇的把戏!

一旦你学会了,就不会再回到手工输入序列中的每一个数字的老方法了。

填充手柄将自动创建一个序列的序列号为您只需点击和拖动。

您首先需要输入两个连续的数字。

注意到活动单元格在右下角有一个正方形吗?

这是填补处理你可以用它来自动填充你开始手动添加的序列的其余部分。

选择前两个单元格,然后将鼠标光标悬停在右下角,直到它变成小黑加号.然后单击并拖动直到你的数据的最后。

如果您正在处理一个大的数据集,那么单击和拖动可能是不可行的。在这种情况下,您可以双击填充句柄来填充序列直到结束。

当你释放填充句柄时,这将填充数字序列,一个小的填充句柄选项菜单将出现在填充序列的右下角。

在这个菜单中有一个方便的选项,可以让你避免填充任何单元格格式。

点击菜单选项并选择没有格式任何复制的单元格格式将被删除。

优点

  • 易于使用,只需要手动输入两个值。
  • 在一行中输入的序列号一旦输入就不会改变。
  • 删除或插入一行不会影响其他记录ID。
  • 在Excel表格内工作。

缺点

  • 每次向数据表底部添加新行时,都需要手动添加序列号或重复填充句柄过程。
  • 对于大型数据集,单击并拖动填充句柄到末尾可能会很乏味。

使用填充系列命令

这个选项非常类似于填充句柄方法,但不需要长时间的点击和拖动操作。

将前两个序列号添加到数据集。然后选择要填充的整个单元格范围,包括已经输入的两个序列号。

要选择一个较长的范围,从底部开始,向上选择顶部更容易。

如果将活动单元格光标放在包含数据的下一列,则可以使用Ctrl+下来去最后一个牢房将光标移回ID列,然后使用Ctrl+转变+向上选择所有空白ID单元格。然后使用转变+向上选择任何先前输入的序列号单元格。

首页选项卡的色带,并单击填满命令然后选择系列

这将打开系列菜单。

  1. 选择系列选择。
  2. 选择自动填充类型选择。
  3. 按下好吧按钮。

这将在选定的空白单元格中填充余下的系列。

优点

  • 易于使用,只需要手动输入前两个数字。
  • 不需要长时间的点击和拖动动作。
  • 您可以在不影响其他现有序列号的情况下删除或插入行。
  • 在Excel表格内工作。

缺点

  • 这不是一个动态的解决方案,所以当您向数据表添加新行时,您将需要手动添加序列号或重复填充过程。

在前一个号码上加1

这是向数据中添加一系列数字的直观方法。Excel的是计算的,所以之前的序号加1是没有问题的。

= b3 + 1

输入值1放入数据的第一行。然后在下一行输入上面的公式。在这个例子中B3是正上方的单元格。

现在您可以将这个公式复制并粘贴到剩下的行。为了快速完成,双击在包含公式的单元格的填充句柄上。

优点

  • 容易实现。
  • 很容易理解公式的作用。
  • 当添加新行时,可以复制并粘贴公式。

缺点

  • 如果你删除任何一行,你会得到#REF!当您删除由下面的单元格引用的单元格时,下面所有行的错误。
  • 公式对于整个列不一致,因为第一行需要包含硬编码的值1。

使用名为范围的相对引用

这个方法将使用与前面的序列号加1相同的思想,但它使用了一个聪明的技巧,使其更健壮。

您需要做的是创建一个命名范围,它将始终引用上面的单元格。

然后您可以引用这个命名范围,而不是直接单元格地址,如B3。

公式选项卡,然后点击定义的名字

这将打开新名字菜单。给你的命名范围起一个类似的名字以上,这是以后在公式中引用它的方式。

=间接(" r [-1] c ", false)

把上面的公式加到是指部分的新名字菜单,然后按好吧按钮。

这个公式使用间接带有行和列符号的函数。R [1]指示引用位于当前单元格上方的一行。

现在当你用以上名称在公式中,它将直接引用您正在输入公式的单元格上方的单元格。

= SUM(上,1)

将上述公式输入到第一行,然后复制并粘贴到数据的末尾。

使用总和函数是对前一个方法的一个小改进,因为不需要在第一行中输入值。这个公式可以一致地应用于每一行。

总和函数将文本值计数为零,因此当公式位于第一行时,您可以安全地引用列标题,而不会产生#价值!错误。

优点

  • 当添加新行时,可以复制并粘贴公式。
  • 对整行使用相同的公式。
  • 在Excel表格中工作良好。
  • 当您删除或插入一行时,序列号将动态调整。

缺点

  • 需要更多的时间来设置。
  • 对于那些正在看你的电子表格的人来说,这个公式可能不是那么明显,
  • 指定的范围使用间接函数是一个易变的Excel函数。它们会降低Excel工作簿的速度,因为它们会更频繁地重新计算。

使用ROW功能

有一个Excel函数可以返回当前的行号,它非常适合创建序号。

= row () - row ($ b $2)

加上上面的公式,其中B2引用列标题单元格,并将其复制粘贴到第一行。

函数在没有传递参数时返回当前行的行号。为了使序号从1开始,我们需要减去列标题单元格的行号。这是通过对带有列标题的单元格的绝对引用来实现的。

优点

  • 容易实现。
  • 插入或删除一行不会导致任何错误,序列号将相应地更新。
  • 在Excel表格内工作。

缺点

  • 公式需要使用绝对引用引用列标题单元格。

使用COUNTA函数

这是另一个公式选项,它依赖于计算前面的数据行。

为了使用这个公式,您将需要一个永远不会包含空白值的列作为COUNTA函数不计算空单元格。

= count ($ c $3: c3)

将上述公式输入到第一行,然后复制并粘贴到数据的末尾。在这个公式C3是第一行中另一列中不包含任何空值的单元格。

注意,公式中的范围引用包含一个部分绝对引用的象征。这将导致公式在将当前记录向下复制到数据集时,将当前记录以上的所有记录包含在其计数中。

优点

  • 很容易实现,唯一棘手的部分是添加部分绝对引用。
  • 您可以插入或删除行而不会出现错误。
  • 工作与Excel表格。

缺点

  • 您需要引用另一个不能有任何空白值的列。

使用SUBTOTAL函数

小计函数很有趣,因为它可以根据可见的单元格返回值。

它还可以用于执行其他聚合,如计数,而不仅仅是求和。

这意味着您可以使用它来创建基于过滤数据而变化的序列号。

=小计(3,$ c $3: c3)

将上述公式添加到第一行,然后复制并粘贴到数据中。

这个公式和COUNTA方法,因为它是一样的。的第一个参数小计函数告诉Excel使用计数类型聚合。

唯一的区别是,当您过滤数据时,序列号将根据仍然可见的内容进行更新。

优点

  • 相同的优点COUNTA方法。
  • 您可以对数据使用过滤器,它们将动态更改序列号。

缺点

  • 缺点一样COUNTA方法。
  • 小计函数是大多数Excel用户不太了解的。

使用SEQUENCE函数

序列Function是一个新的动态数组函数。这意味着一个公式可以生成一个值数组。

它可以做更多的事情,但是这个函数也可以生成一列从1开始递增的数字。完美的序列号!

= sequence (count (c3: c8))

将上述公式添加到第一行数据中。在这个例子中C3: C8是一列的整个范围。这将决定有多少序列号序列函数将返回。

=序列(6)

另一种方法是硬编码行数序列函数类似于上面的公式。不幸的是,这种方法意味着每次添加或删除数据行时都需要手动调整计数。

优点

  • 你只需要一个公式。不需要复制和粘贴公式到数据集的末尾。
  • 插入或删除除第一行以外的任何行都不会产生任何错误,您的序列号将相应地调整。

缺点

  • 删除第一行将删除所有序列号。
  • 不能在Excel表格中使用。
  • 如果在数据集的底部添加行,则需要调整序列函数来包含这些。
  • COUNTA函数将要求非空值。

使用力量主

这个有点奇怪,因为它会在透视表中创建序号。

但这可能正是你想要的。

您可以使用带有计算列的幂透视来为透视表的行编号。

选择您的数据表,然后到力量主选项卡,然后点击添加到数据模型中

=排名。EQ(Data[Email], Data[Email], ASC)

这将打开电源枢轴插件,你将能够将上述公式添加到表中。

在本例中,已经命名了表数据我们对电子邮件包含唯一文本值的列。这就产生了可以用作序列号的列。

在数据透视表中使用此计算列。

  1. 插入选项卡。
  2. 点击数据透视表
  3. 选择从数据模型从选项。
  4. 选择您想要放置数据透视表的位置。
  5. 将字段添加到区域,包括排名计算列。
  6. 设计选项卡➜报告布局以表格形式显示.这将使它看起来更像一个数据集而不是数据透视表。

优点

  • 您可以在数据透视表中创建序列号。

缺点

  • 你需要一个像电子邮件一样具有唯一值的列。
  • 结果没有顺序。

使用VBA代码

VBA已经在Excel和其他Office应用程序中使用很长时间了。

这是在Excel中自动执行任何任务的方法。所以你当然可以用它来自动生成序列号。

这些天,通常有更好的选择可用,我只建议使用VBA解决方案作为最后的手段。

Sub AddSerial() Dim cell As Object Dim count As Integer count = 0 For Each cell In Selection count = count + 1 cell。值= count下一个单元格结束Sub

将上述代码添加到visual basic编辑器中。

  1. 总统Alt+打开visual basic编辑器。
  2. 右键单击VBAProject窗口。
  3. 选择插入从菜单中。
  4. 选择模块从子菜单。
  5. 将代码粘贴到模块中。

以上代码将从1开始向任何选定范围添加递增的数字序列。

现在可以运行代码了。

  1. 选择要添加序列号的整个列。
  2. 新闻Alt+F8打开对话框。
  3. 选择要运行的宏。
  4. 按下运行按钮。

这将用从1开始的数字序列填充选定的范围。

优点

  • 将静态数字添加到任何范围。

缺点

  • 使用VBA,并要求将工作簿保存为xlsm文件。
  • 很难设置和运行。
  • 如果向数据集添加或插入行,则需要重新运行代码。

在电源查询中使用索引列

Power Query是一种惊人的数据转换工具,可以在Excel和其他微软产品中找到。

如果您已经使用它从外部源导入数据到Excel中,那么它可能是向数据添加序列号的完美解决方案。

如果您的数据已经在Excel中,您仍然可以使用电源查询添加序列号,但您需要首先将数据添加到Excel表中。

我写了一个详细的文章关于Excel表格,在这里您可以了解所有相关信息,包括如何将数据转换为表。

将数据添加到查询中从表查询选择表格内的一个单元格➜转到数据选项卡➜选择从表

这将打开电源查询编辑器,您将能够从这里添加带有序列号的列。

添加一列选项卡并单击索引列命令。单击的小箭头图标索引列按钮以选择启动索引从1

现在你可以去首页选项卡➜密切与负载关闭和加载到➜选择将结果加载到Excel表中,并选择加载位置。

您的数据将被加载到另一个带有额外索引列的表中。

如果从源中添加或删除数据,则需要刷新查询输出以查看更新后的结果。您可以通过右键单击表并进行选择来刷新查询刷新从菜单选项。

优点

  • 如果您正在使用电源查询从外部数据源导入数据,这是一个很好的选择。
  • 容易刷新,一旦它被设置。

缺点

  • 对于第一次使用它的人来说,电源查询可能会令人生畏。
  • 它不会将序列号添加到数据源中,它只会将它们添加到数据源查询的输出中。

使用已连接表的连接属性

如果您的数据已经从外部源(如电源查询或导出的SharePoint列表)加载到表中,那么您可以从连接属性菜单中启用行号。

选择已连接的表,然后转到数据选项卡并单击属性命令。

这将打开外部数据属性菜单,您可以启用该选项包含行数字并按下好吧按钮。

现在需要刷新连接以查看行号。去数据选项卡并单击刷新按钮。

刷新连接后,您将在表中看到一个名为_RowNum从0开始计数。

优点

  • 您可以在源数据中删除或插入行,当您刷新连接时,行号将会更新。

缺点

  • 此功能仅适用于已连接的数据表。
  • 行号设置很难发现。
  • 行号列只能作为表中最左边的列出现。
  • 行号从0开始,不能改为从1开始。
  • 您序列号的栏标题不能更改_RowNum

使用办公室脚本

Office Scripts是一种新的基于TypeScript的脚本语言,目前仅在Excel在线企业微软365计划

这是VBA的替代,你当然可以使用它来自动生成一组行数。

首先,为了使用这个方法,您需要一些东西。

  • 您的Excel文件必须保存在SharePoint中。
  • 您需要在Excel web应用程序中打开您的Excel文件。
  • 您需要参与企业级的Microsoft 365计划。
  • 需要Office Scripts特性启用你的IT管理员。

打开您的文件Excel在线然后去自动化选项卡,然后点击新的脚本

function main(workbook: ExcelScript.Workbook) {let selectedSheet = workbook. getactiveworksheet ();让myID = selectedSheet.getRange("数据[ID]");让myCellCount = myID.getCellCount();让mySerialNumbers = new Array(Array(myCellCount));For (var I = 0;我< myCellCount;i++) {mySerialNumbers[i] = [i+1]} selectedSheet.getRange("Data[ID]").setValues(mySerialNumbers);}

将上面的代码粘贴到代码编辑器.您可以重命名脚本并按下保存脚本保存脚本。

按下运行按钮代码编辑器运行脚本。

这个脚本依赖于Excel表中的数据数据列名为ID

优点

  • 一旦设置好,就很容易使用了。

缺点

  • Excel文件需要保存在SharePoint中。
  • Office脚本仅在Excel在线版中用于企业Microsoft 365计划。
  • 您只能从Excel在线运行此脚本。

使用电力自动化

现在您已经有了一个可以向Excel添加序列号的Office脚本,可以使用Power automation来自动化该脚本的运行。

您可以使用power automation按时间表运行此脚本,因此您可以每天甚至每小时自动更新序列号。

  1. 登录https://flow.microsoft.com/
  2. 点击创建在左边的导航窗格中。
  3. 点击将云流
  4. 给你的流程起个名字添加序列号
  5. 将开始日期设置为今天的日期和时间。
  6. 设置您希望流运行的频率。
  7. 点击创建按钮。

现在添加一个运行脚本进入流并选择要运行的文件和脚本保存流。

现在,这将自动运行脚本,以您所需的频率添加序列号。

优点

  • 解决方案在后台自动运行。
  • 您可以在流运行时在桌面或web应用程序中处理该文件。

缺点

  • 需要一个复杂的设置。
  • 需要Microsoft 365, SharePoint和Office脚本。

结论

在Excel中添加序列号有很多选择。

每种方法都有不同的优点和缺点,这可能使它们成为您用例的更好选择。这是值得探索所有的它们,看看哪一个最适合你。

无论你的技能是什么,都有一个选择可以让你得到你想要的结果。

我是不是错过了你最喜欢的添加行号的方法?如果你有其他的方法,请在评论中告诉我!

关于作者

约翰MacDougall

约翰MacDougall

John是微软MVP和自由顾问和培训师,擅长Excel, Power BI, Power automation, Power Apps和SharePoint。你可以在约翰的博客或YouTube频道上找到其他有趣的文章。

订阅

广告

相关文章

评论

1评论

  1. Atwar

    谢谢你提供这么多信息。

    回复

提交评论

您的电子邮件地址将不会被公布。必填字段已标记

这个网站使用Akismet来减少垃圾邮件。了解如何处理您的评论数据

获取最新消息

关注我们

在社交媒体上关注我们,了解Excel中的最新技巧!

把它钉在Pinterest上

分享这