首页 > 解决方案 > 您可以用逗号替换第一个特殊字符,并从单元格中删除其他特殊字符吗?

问题描述

我试图通过复制粘贴我需要的数据然后引用工作表上另一个位置的单元格来使工作表更易于使用。粘贴时,数据在整数和小数之间使用点而不是逗号。这会导致工作表以一种奇怪的方式更改数据值。例如,98.04被替换为98:04:00.000,并且20.39被替换为20.39.00。我知道发生这种情况是因为工作表希望有一个十进制逗号,但我不明白它是如何工作的,或者为什么上述两个中的一个在数字之间有冒号,而另一个保留它的点。

无论如何,我希望我的单元格中引用复制粘贴值的值是实数,带有小数点逗号。我的想法是将所有点和冒号更改为逗号,然后删除第一个逗号之后的任何逗号,或者删除第一个之后的任何点或冒号,然后将剩余的一个逗号更改为逗号。但是,我不知道如何做到这一点,这就是我问你们的原因。

编辑:链接到我的工作表的副本:https ://docs.google.com/spreadsheets/d/17-qHsr3Pky2_5aSRb7l4K5uB9JKStAxIK8qwgfd1vxE/edit?usp=sharing

标签: regexgoogle-sheetssyntaxgoogle-sheets-formulaarray-formulas

解决方案


但我不明白它是如何工作的,或者为什么上述两个中的一个在数字之间有冒号,而另一个保留它的点

有两个版本的语法 US 使用逗号,和 EU 使用分号;。它总是可以在这里选择:

0


=(REGEXEXTRACT(A1&""; "\d+")&","&REGEXEXTRACT(A1&""; ":(\d+)"))*1

0

和 ArrayFormula 将是:

=ARRAYFORMULA(IFNA(REGEXEXTRACT(A1:A&""; "\d+")&","&
 REGEXEXTRACT(SUBSTITUTE(A1:A&""; "."; ":"); ":(\d+)")*1))

0


更新:

=ARRAYFORMULA((REGEXEXTRACT(TO_TEXT(D64:D71); "\d+")&","&
 REGEXEXTRACT(TO_TEXT(SUBSTITUTE(D64:D71; "."; ":")); ":(\d+)"))*1)

0

电子表格演示


推荐阅读