【问题标题】:How to format a 20 digits numbers in GSHEETS (or EXCEL)如何在 SHEETS(或 EXCEL)中格式化 20 位数字
【发布时间】:2020-10-05 07:36:41
【问题描述】:

我正在使用 GSHEETS
我正在尝试使用格式编号来自定义显示 20位数字,例如:
在单元格中输入:12345678901234567890
所需的单元格格式:12 345678 9012345678 90

我试过这个:00_000000_0000000000_00
但它显示 12 345678 9012345000 00

我试过这个:00"-"000000"-"00000000"-"00
但它显示:1234-567890-12345000-00

似乎只能格式化 15 个数字。这是对的还是我弄错了?

【问题讨论】:

  • 您需要将其视为文本字符串而不是数字。这些应用程序仅存储 15 个 sig 数字。
  • 你好 scott 不能用@格式化吗?
  • 在将数据输入/粘贴/导入单元格之前,必须将单元格格式化为文本字符串。如果在第 15 个 sig 数字后的数字消失且无法检索后完成。
  • 好的,谢谢,我将两个单元格放入并使用kishkin或html输入框的解决方案,然后进行文本的预格式化

标签: excel google-sheets number-formatting


【解决方案1】:

以下是仅限 Google 表格的解决方案。

如果您在单元格中有一个 20 位数字并且它实际上是一个字符串,那么这将根据您的需要对其进行格式化(它仍然是一个字符串):

=REGEXREPLACE(A1, "^(\d{2})(\d{6})(\d{10})(\d{2})$", "$1 $2 $3 $4")

更新。还有其他一些。

不仅是数字,任何字符串都会被格式化为空格:

=REGEXREPLACE(B2, "^(.{2})(.{6})(.{10})(.{2})$", "$1 $2 $3 $4")

这个可以让你在一个地方改变分隔符:

=JOIN(" ", REGEXEXTRACT(B4, "^(\d{2})(\d{6})(\d{10})(\d{2})$"))

还有一个愚蠢的:

=REGEXREPLACE(B3, "^(..)(......)(..........)(..)$", "$1 $2 $3 $4")

【讨论】:

  • 丑陋,因为所有人都出去阅读,但它有效,但那是你的正则表达式
  • 我希望 SO 有一个笑的表情符号!美在于力量,而不是语法:)
【解决方案2】:

我的两分钱:

=REPLACE(REPLACE(REPLACE(A1,19,0," "),9,0," "),3,0," ")

【讨论】:

  • 赞成:比^(\d{2})(\d{6})(\d{10})(\d{2})$ 更具可读性 .... 但只有一点点(哈哈哈)
【解决方案3】:

使用两个单元格。

在单元格 A1 中包含完整的 20 个字符的数字字符串,在 B1 中输入:

=LEFT(A1,2) & " " & MID(A1,3,6) & " " & MID(A1,9,10) & " " & RIGHT(A1,2)

这同样适用于 20 个字符的字母字符串。

【讨论】:

    【解决方案4】:

    当你处理字符串值时,可能:

    =TEXTJOIN(" ",1,MID(A1,{1,3,9,19},{2,6,10,2}))
    

    甚至:

    =CONCAT(MID(A1,{1;3;9;19},{2;6;10;2})&" ")
    

    我相信您需要 CONCATENATE 来使用 Google 表格。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多