文本编号如何转换为自动编号呢(查找替换编号主文)

对于任何以表格结构展现的内容来说,为了让每行数据被唯一标识,通常会配以一个 ID 列,Microsoft Lists 列表(或 SharePoint 列表)也不例外。当你为列表提供一个 ID 列时,就可以在其他地方引用这个列表中的数据时精准定位特定的行,也就是列表项。

那么,怎样在你的列表中添加 ID 列,并对其显示格式进行自定义呢?

直接使用列表内置的默认 ID 列

实际上,每个列表都已经包含了一个 ID 列,但默认情况下,它是不显示的。如果你的列表需要包含 ID 列,最简单的方法是将其显示出来

无论这个默认存在的 ID 列是否已被显示出来,它都会默默地为你记录着每个列表项的唯一数字编号。

基于默认 ID 列创建自定义 ID 列

但在实际应用中,你可能更希望让 ID 列呈现某种自定义格式,使之能够自我表达出某种特定意义,而不是仅显示简单的数字编号。

例如,可以将1替换为POID - 001(POID 代表 Placed Order ID,即已下达订单编号)。这时,你就需要创建一个计算列来作为自定义 ID 列

然后,按照你预想的 ID 显示格式来为此计算列输入计算公式,并在计算公式用引用默认 ID 列中的值,以将其套用到你在公式中的自定义显示格式之中。

现在,你就可以将默认的 ID 列重新隐藏起来,转而使用这个具有自定义显示格式的计算列来取而代之。

按照目前的自定义 ID 列计算公式,将会计算求得诸如POID - 009和POID - 0010这样数字部分长度不一的 ID 值。

但实际上,你可能更希望获得诸如POID - 009和POID - 010这样数字部分长度相同的 ID 值。

为此,你可以在自定义 ID 列的计算公式中使用数字格式化函数来固定 ID 数字的长度。

例如,你想将 ID 数字的长度固定为 3 位,则可以:

=CONCATENATE("POID - ", REPT("0", MAX(0, 3 - LEN([ID]))), [ID])

或者,也可以采用更简单的公式:

="POID - " & TEXT([ID],"000")

现在,你就得到整整齐齐的 ID 了。

除此之外,在你添加自定义 ID 列后,还会存在另一个问题:当你创建新的列表项时,其自定义 ID 字段的计算公式无法提取此列表项所对应的默认 ID 值。

这是因为,默认 ID 值是在你保存新列表项之后才会生成,而在你保存新列表项的那一刻,自定义 ID 的计算公式就已经提前完成了计算。

那么,要怎样纠正这个问题呢?

你可以在每次新建列表项时触发 Power Automate 自动化云端流,以便借此机会来从新列表项中提取它的默认 ID 值,并使之在自定义 ID 字段的计算公式中可用。

当你选择创建以当创建项时作为触发器的自动化云端流后,可以选用如下两种解决办法之一:

第一步

重新计算整个自定义 ID 列

在这种方法下,你可以使用在创建项时触发器来触发将 HTTP 请求发送到 SharePoint操作,并由此操作来将整个自定义 ID 列的公式属性重新赋值为现有计算公式,以便强制此列执行重新计算。

当上述流开始运行后,每当你创建一个新的列表项,都会对整个自定义 ID 进行重新计算。

第二步

重新计算单个自定义 ID 值

在这种方法下,你需要单独创建一个数字类型的自定义列,然后,通过在创建项时触发器来触发更新项操作,并由此操作来将 SharePoint 为当前列表项生成的默认 ID 值复制到此列。

接下来,你还需要在列表中修改自定义 ID 列的计算公式,以将这个数字类型的自定义列作为默认 ID 值的来源。

这样,每当你创建新的列表项后,都会触发 Power Automate 流来对此列表项中的这个数字字段做出更改,进而触发自定义 ID 字段中的计算公式执行重新计算。

最后,你会发现,当你创建新的列表项时,这个数字字段也会出现在新建项目表单中。但实际上,它应该由 Power Automate 流来自动填写,而非由用户来人工填写。

因此,你需要在列表设置中将其从新建项目表单中隐藏。

当然,你还需要在列表中隐藏此列。至此,你已经完美地解决了自定义 ID 列在计算上的问题。

不基于默认 ID 列创建自定义 ID 列

虽然你可以通过将列表默认提供的 ID 值作为自定义 ID 值的组成部分,以使之获得唯一性,但实际上,你不一定非要依赖于默认 ID 值不可,而是采用其他元素来组装一个具有唯一性的自定义 ID 值。

例如,在一个订单管理列表中,你可以采用如下格式来进行组装:

<前缀>-<日期>-<此日期内新增列表项的序号>

假设你继续使用POID作为前缀,那么,在 2022 年 11 月 11 日新增的第一条订单记录就是:

POID-20221111-001

为了实现这样的自定义 ID 列,你可以执行如下操作步骤:

第 1 步,在列表中创建一个单行文本类型的列,用作自定义 ID 列;然后,创建一个 Power Automate 自动化云端流,并选用当创建项时触发器。

第 2 步,指定该触发器将会作用于哪个列表。

第 3 步,在当创建项时触发器后面,添加一个获取多个项操作。它的作用是从指定列表中筛选出日期字段取值等于当前新建列表项日期值的所有列表项,并将它们作为当前操作的返回结果。

第 4 步,在获取多个项操作后面,添加一个编辑操作。它的作用是使用公式计算获取多个项操作所返回的列表项数量,并将该公式的计算结果作为当前操作的返回结果。

第 5 步,在编辑操作后面,添加一个更新项操作。它的作用是将编辑操作所返回的计算结果作为当前日期内新建列表项的序号,并使用公式来为最新创建的列表项组装<前缀>-<日期>-<此日期内新增列表项的序号>格式的自定义 ID 值。

现在,你就得到了这样一个 Power Automate 流。

启用这个流,并在你的列表中新建一些具有不同日期列表项。这时,不引用默认 ID 值的个性化 ID 列就可以正常发挥唯一标识列表项的用途了。

最后,由于这个自定义 ID 列只是一个单行文本类型的可输入列,而不是计算列,因此,它会出现在列表的新建项目表单上。为了避免用户手动输入,还需要将此列从该表单上隐藏(如前所述)。

用心,做专业内容。点个关注,我们将持续为您带来更多专业内容!

本文由生产力工坊原创发布,可在微信公众号:生产力工坊查看更多新鲜资讯。

网络讯息

红砖房寿命是多少年(给大家介绍一下)

2023-4-9 15:00:22

网络讯息

用纸折垃圾盒(折纸小垃圾盒的折法)

2023-4-9 15:07:21

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索