【问题标题】:Is there code that can force a user to enter a particular format into a cell?是否有代码可以强制用户在单元格中输入特定格式?
【发布时间】:2019-12-03 00:08:30
【问题描述】:

我有一个 Google 电子表格。

Google Spreadsheet

当用户在名为“单位标准”的工作表的 A 列的任何单元格中输入名称时,我希望他们以特定格式输入该名称。也就是说,姓氏首先是大写,然后是逗号,然后是名字在标题大小写中,然后如果他们以不同的名字知道,那么该名字在括号中是标题大小写,例如

  • 布什,乔治
  • 特朗普,唐纳德
  • 克林顿,威廉(比尔)
  • 卡特,詹姆斯(吉米)
  • 史密斯-琼斯,约翰
  • 泽塔-琼斯,凯瑟琳(凯特)

有没有办法在他们离开单元格或工作表之前强制他们这样做?

【问题讨论】:

  • 您可以通过使用正则表达式进行客户端验证的对话框或 Web 应用程序来实现。
  • 在您的情况下,是否需要使用 Google Apps 脚本?
  • Google Apps 脚本可能不是必需的。我对任何可以达到相同结果的方法都很满意。
  • 感谢您的回复。现在我注意到已经发布了答案。它将解决您的问题。
  • @Tanaike 不幸的是它还没有解决

标签: google-sheets google-sheets-formula


【解决方案1】:

您可以使用脚本。仍然。

您可以通过在列A 上使用Data Validation 的简单公式获得相同的结果。

这是在单元格A2 中放入A2:A555 范围的公式:

=REGEXMATCH(A2,"^[A-Z]+\b[',']\s[A-Z]{1}[a-z]+\b(\s([A-Z][a-z]+\b))?$")

读取正则表达式:

^[A-Z]+\b[',']\s[A-Z]{1}[a-z]+\b(\s([A-Z][a-z]+\b))?$

  • ^[A-Z]+\b: 开头只有1个或多个大写字母,直到词尾
  • [',']\s:有一个,,后跟一个空格
  • [A-Z]{1}[a-z]+\b: 直到词尾只有1个大写字母和1个或多个小写字母
  • (\s\([A-Z][a-z]+\b\))?$:以上所有都可以?之后加上这个字符串。
    • \s\(:空格和左括号(
    • [A-Z][a-z]+\b: 仅以 1 个大写字母开头,后跟 1 个或多个小写字母的单词
    • \):右括号
    • $: 字符串结束

【讨论】:

  • 谢谢你的解释。我在 A 列上使用数据验证添加了公式,但那些带有括号名称的公式,例如克林顿、威廉(比尔)违反了规定。
  • 我也忘记了带连字符的名称,例如史密斯-琼斯,约翰
  • 我已将链接复制到我的电子表格。这是一张名为“单位标准”的表格
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多