从 Excel 中的非数字值中删除前导零的最佳方法

Chr*_*mer 14 worksheet-function microsoft-excel

我在 Excel 工作表中有许多单元格,使用 0-9 和 AZ 的 9 个字符,它们有一些前缀零:

000000123 
000001DA2 
0000009Q5
0000L210A
0000014A0
0000A5500
00K002200

我想删除前导零,使值变为:

123 
1DA2 
9Q5
L210A
14A0
A5500
K002200

我将如何在 Excel 公式中执行此操作?我宁愿避免使用 VBA 宏。

Isa*_*ses 14

这是一个单元密集但正确的解决方案。

将您的数据放在 A 列中。

在B1中,输入公式:

=IF(
    LEFT(A1) = "0" ,
    RIGHT(A1, LEN(A1)-1),
    A1)
Run Code Online (Sandbox Code Playgroud)

这会检查单个前导零并将其删除。

将此公式复制到右侧,与数据中的字符数一样多(在本例中为 9,因此您将转到 J 列)。将其复制到每一行数据。

最后一列包含您的数据,去掉前导零。


小智 9

以下公式不需要额外的单元格,也不需要作为数组公式输入:

=RIGHT(A1,LEN(A1)-FIND(LEFT(SUBSTITUTE(A1&" ","0",""),1),A1&" ")+1)
Run Code Online (Sandbox Code Playgroud)

如果像000之类的字符串应返回单个零,则可以使用以下公式:

=IF(A1="","",RIGHT(A1,LEN(A1)-FIND(LEFT(SUBSTITUTE(LEFT(A1,LEN(A1)-1)&" ","0",""),1),LEFT(A1,LEN(A1)-1)&" ")+1))
Run Code Online (Sandbox Code Playgroud)


Lan*_*rts 5

对于工作表函数来说,这是一个棘手的问题。以下内容可以解决问题,但前提是不是前导的零一次只出现一个,并且没有尾随零,也没有嵌入空格。

它用空格替换所有零,修剪它们(除了嵌入的单个空格之外的所有零),然后替换回零。

=SUBSTITUTE(TRIM(SUBSTITUTE(A1,"0"," "))," ","0")
Run Code Online (Sandbox Code Playgroud)


Kij*_*ije 5

此解决方案适用于全部为 9 个字符的输入值。

首先设置一个固定的十行表,其中包含以下格式化为文本的数字。

000000000

000000001

000000010

000000100

000001000

000010000

000100000

001000000

010000000

100000000

假设表格在单元格 A1 到 A10 中

假设您的输入值在单元格 B1 中,而您的结果单元格是 C1

在单元格 C1 中使用以下公式

=RIGHT(B1,MATCH(B1,$A$1:$A$10,1)-1)