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)
如果像0或00之类的字符串应返回单个零,则可以使用以下公式:
=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)
对于工作表函数来说,这是一个棘手的问题。以下内容可以解决问题,但前提是不是前导的零一次只出现一个,并且没有尾随零,也没有嵌入空格。
它用空格替换所有零,修剪它们(除了嵌入的单个空格之外的所有零),然后替换回零。
=SUBSTITUTE(TRIM(SUBSTITUTE(A1,"0"," "))," ","0")
Run Code Online (Sandbox Code Playgroud)
此解决方案适用于全部为 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)
| 归档时间: |
|
| 查看次数: |
118170 次 |
| 最近记录: |