电话号码的多种布局需要自定义格式

问题描述

我有一个具有各种布局的电话号码列表(澳大利亚),我需要为它们创建一致性。我需要布局看起来像下面的例子。然后将数据导入回数据库,但不会将它们拆分为每个数字公式的不同单元格。

例如我有 - 5382 1111,03 5382 1111,0417 111 111,1300 123 123,13 13 13,

我通过自定义格式单元格尝试了几个不同的公式,但它们无法正常工作,并且正在从单元格中删除数字。

解决方法

您可以使用自定义数字格式来实现这一点。

对于以 0 开头的数字,还要注意数据前是否有撇号 (') 或使整列文本格式。

如果您展示了您的尝试,我们可以帮助您进行故障排除。

一种方法

提示:要将固定电话和移动电话合并到同一规则中,请尝试有条件的自定义号码格式。如需了解详情,请参阅Custom number formats and how to use them

一个例子

您可以尝试使用此自定义数字格式字符串:

[<100000000]#### ####;[<400000000]0# #### ####;0### ### ###

关于这个例子的说明:

  • 它可以与您所在的本地固定电话和手机号码正常工作。
  • 它甚至可以与来自该地区以外的客户合作,包括州际客户。
  • 不过,国际号码会很麻烦,需要采用不同的方法。
  • 如果您将它与任何以 + 号和国家/地区代码开头的数字一起使用,它将不起作用,需要采用不同的方法。

关于您的数据的假设

上面的例子假设:

  • 您的输入都不是文本,它们都是数字
  • 可以包含或省略前导零,它应该仍然有效
  • 所有缩短的本地号码均为 8 位数字(以任何数字开头,例如 5)
  • 所有完整的本地或州际号码均为 10 位数字(以 0 开头)
  • 您所有的手机号码均为 10 位数字(以 04 开头)

限制

上面的解决方案示例没有正确处理 1300 或 13 数字:

  • 13 个数字像 13 1313 而不是 131 313 或 13 13 13。这是可以接受的还是你需要像 13 13 13 这样的数字?如果你这样做了,那些像 131 313 这样被引用的呢? (根据数字分组自动执行 13 13 13 或 131 313 将是另一个复杂的问题)。
  • 1300 个数字像 01300 000 000 一样。这并不理想,但唯一的问题是多余的不必要的前导 0;其余的格式看起来是正确的。
  • 1800 个号码怎么样,你也需要吗?

如果您将数字存储为文本,或以 + 和 IDD(国际国家/地区)代码开头的数字,您将需要不同的方法。

如果您以旧格式存储的数字是从 8 开始的 6 位数字(例如 821 111)和区号 053(在它继承 03 代码并将 53 移到数字开头之前),然后:

  • 您将需要不同的解决方案
  • 您的数据是本网站年龄的 3 倍以上