在Google Spreadsheet中按特定长度填充数字[关闭]


33

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

是否可以在Google Spreadsheet中将字符串填充到一定长度?

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


2
这不完全是您所要求的,但是可以达到可比的效果,并且可以解决人们搜索的常见任务:(1)选择要填充数字的列。(2)选择格式>数字>更多格式>自定义数字格式...(3)在对话框中,输入数字字符串应有的0位数,例如您的示例中的000。
tophcito

2
它不应该只是简单地关闭,而应该移到webapps.stackexchange.com
Lennart

Answers:


53

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

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

=TEXT(5,"000")

将输出:

005

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


有没有一种填充空格的方法?
亚历

我认为将“ 000”替换为“”
Lennart Rolland

12

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

选择单元格,单击格式>号码>更多格式>自定义数字格式...

来自文档编辑器的帮助

数字中的一个数字。微不足道的0将出现在结果中。


2
您可以编辑答案以扩展OP如何执行此操作吗?
布尔吉

3

临时解决方案

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

工作公式

只需使用以下公式:

`=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)`

3用填充长度和0填充字符替换。A2是填充源。

说明

考虑以下电子表格:

-------------
| A   |  B  |
-------------
| 1   | 001 |
-------------
| 2   | 002 |
-------------
| 31  | 031 |
-------------
| 45  | 045 |
-------------
| 500 | 500 |
-------------

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

串联!

首先,我们需要一种A使用填充字符串将列中的值连接起来的方法。我们可以使用以下CONCATENATE功能:

=CONCATENATE("00", A2)

重复!

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

=REPT("0", 2)

该公式将重复0两次。让我们结合起来:

=CONCATENATE(REPT("0", 2), A2)

计算长度!

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

=3-LEN(A2)

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

=CONCATENATE(REPT("0", 3-LEN(A2)), A2)

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

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

=IF(LEN(A2)<3, "APPLY REPT", "OUTPUT AS IS")

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

=IF(LEN(A2)<3, CONCATENATE(REPT("0", 3-LEN(A2)), A2), A2)

完善!这是最好的答案,它适用于非数字值;
-D
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.