在 Google 电子表格中将数字填充到特定长度

Sla*_* II 39 google-spreadsheets

我有一个这样的整数列:1, 2, 3, 4, 5我想创建另一个列,这些值填充到三个长度,如下所示:001, 002, 003, 004, 005

是否可以在 Google 电子表格中将字符串填充到长度?

我无法为此找到标准功能。

Len*_*and 66

推荐的方法是使用TEXT() 函数

关于如何在您的情况下使用它的快速摘要:

=TEXT(5,"000")
Run Code Online (Sandbox Code Playgroud)

会输出:

005
Run Code Online (Sandbox Code Playgroud)

当然,您可以将文字 5 替换为对源编号所在的另一个单元格的引用。


小智 12

如果您只想更改显示,您可以将自定义数字格式“000”应用于单元格。在此处输入图片说明

选择单元格,单击Format > Number > More Formats > Custom number format...

来自文档编辑器的帮助

号码中的一个数字。结果中将出现一个无关紧要的 0。

  • 您能否[编辑]您的答案以扩展 OP 如何做到这一点? (2认同)

Sla*_* II 5

临时解决方案

这是我想出的临时解决方法。

工作公式

只需使用这个公式:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`
Run Code Online (Sandbox Code Playgroud)

替换3为填充长度和0填充字符。A2是一个填充源。

解释

考虑以下电子表格:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------
Run Code Online (Sandbox Code Playgroud)

我们有初始列 (A),其中包含我们要填充的整数。(B) 列将包含处理数据的特殊公式。

连接起来!

首先,我们需要一种方法将A列中的值与填充字符串连接起来。我们可以用CONCATENATE函数来做到这一点:

=CONCATENATE("00", A2)
Run Code Online (Sandbox Code Playgroud)

重复!

现在,填充字符0在我们的公式中重复两次。不是很好。我们可以使用REPT函数多次重复填充字符,如下所示:

=REPT("0", 2)
Run Code Online (Sandbox Code Playgroud)

这个公式会重复0两次。让我们将它们结合起来:

=CONCATENATE(REPT("0", 2), A2)
Run Code Online (Sandbox Code Playgroud)

计算长度!

这样更好。但是填充长度在我们的公式中具有一个常量值,并且不适用于大于 9 的数字。我们可以通过计算填充字符串的长度(使用LEN函数)并从目标长度中减去它来解决此问题:

=3-LEN(A2)
Run Code Online (Sandbox Code Playgroud)

让我们将其添加到我们的公式中:

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)
Run Code Online (Sandbox Code Playgroud)

但是,对于大于 999 的值,我们将得到负结果,这将破坏函数REPT(重复次数不能为负)。

我们可以通过添加条件轻松修复它:

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")
Run Code Online (Sandbox Code Playgroud)

让我们把最后的和平放在一起:

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)
Run Code Online (Sandbox Code Playgroud)