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 替换为对源编号所在的另一个单元格的引用。
这是我想出的临时解决方法。
只需使用这个公式:
`=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)
| 归档时间: |
|
| 查看次数: |
39644 次 |
| 最近记录: |