Excel - 删除单元格中的特定小数

Excel - Remove a specific decimal in a cell

我很难从我的单元格中删除最后一个小数点。有什么建议吗?

示例: 0101.29.00.90 至 0101.29.0090

假设 A1:0101.29.00.90

要去掉单元格最后一位小数,如果小数位数不固定,在B1输入公式:

=SUBSTITUTE(A1,".","",LEN(A1)-LEN(SUBSTITUTE(A1,".","")))

去掉单元格最后一位小数,如果小数固定在3位没有,B1公式可以简写为:

=SUBSTITUTE(A1,".","",3)

结果是:0101.29.0090

您需要使用SUBSTITUTE功能。

SUBSTITUTE(text, old_text, new_text, [instance_num])

SUBSTITUTE 函数语法具有以下参数:

正文 必填。文本或对包含要替换字符的文本的单元格的引用。

Old_text 必需。您要替换的文本。

New_text 必需。您要将 old_text 替换为的文本。

Instance_num 可选。指定要用 new_text 替换的 old_text。如果指定 instance_num,则仅替换 old_text 的那个实例。否则,文本中每次出现的 old_text 都会更改为 new_text.


最后一个选项对于您的问题不是可选的。例如,使用下面的公式

=SUBSTITUTE(A1,".","",3)

假设源数据在单元格 A1 中。

它将用空字符串替换第三个点,您将得到所需的解决方案。

i.e 0101.29.00.90 to 0101.29.0090

这里有一个更通用的方法:

假设您的数据在单元格 A1 中,在单元格 B1 中输入以下 数组公式:

=REPLACE(A1,MAX(IFERROR(FIND(".",A1,ROW($A:INDEX($A:$A,LEN(A1)))),0)),1,"")

必须Ctrl+Shift+Enter 在公式栏中完成公式后,否则它将无法正常运行。然后,您只需将公式向下拖动即可应用。

The logic is to use FIND function to find the position of each dot . within the string, then use MAX+IFERROR functions to return the largest value i.e. the position of the last dot ., then use REPLACE function to replace the last dot . with blank "".

这是一些测试结果:

| Sample Data     | Result         |
|-----------------|----------------|
| 0101.29.00.90   | 0101.29.0090   |
| 1.2.3.4.5.6.7.8 | 1.2.3.4.5.6.78 |
| 000.111.222.3   | 000.111.2223   |
| 4.3.2.01        | 4.3.201        |