【问题标题】:Data validation using regular expressions in Google Sheets在 Google 表格中使用正则表达式进行数据验证
【发布时间】:2023-03-14 22:36:01
【问题描述】:

我在 gSheets 中使用以下日期/时间格式:

4 月 1 日 11:00

我想知道当格式有任何不同时,是否可以使用数据验证(或任何其他功能)来报告错误(将红色小三角形添加到单元格的角落)。

给定格式的可能值:

  • 01 -> 01-31 之间的任意数字(但不是“1”,必须有前导零)
  • 空格
  • Apr -> 3 个字母一个月(一月、二月、三月...十二月)
  • 空格
  • 空格
  • 11 -> 24 小时制小时 (00, 01...23)
  • 00 -> 分钟 (00, 01,...59)

有什么方法可以验证单元格是否包含上述格式的“文本/数据”?

非常感谢您的帮助。

贾内克

【问题讨论】:

  • 谢谢,这是正确的方法!

标签: regex validation google-sheets spreadsheet


【解决方案1】:

正确的做法是在 Google 表格中使用正则表达式和“regexmatch()”函数。对于给定的示例,我制作了以下正则表达式:

[0-3][0-9](一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月)在 [0-2][0-9]: [0-5][0-9]

流程:

  • 选择要验证的单元格范围
  • 转到数据 > 数据验证
  • 在 Criteria 下选择“Own pattern is”(不确定 EN 中使用的确切翻译)
  • 粘贴:=regexmatch(to_text(K4);“[0-3][0-9](一月|二月|三月|四月|五月|六月|七月|八月|九月|十月|十一月|十二月) [0-2][0-9]:[0-5][0-9]")
  • 确保“to_text(K4)”中有一个左上角单元格,而不是“to_text(K4)”中的 K4
  • 保存

希望它可以帮助某人:)

【讨论】:

    【解决方案2】:

    您可以尝试数据验证公式:

    =not(iserror(SUBSTITUTE(A1," at","")*1))*(len(A1)=15)*(right(A1,2)*1<61)

    • not(iserror(SUBSTITUTE(A1," at","")*1)) 检查所有声明是否为合法日期
    • (len(A1)=15) 检查日期是否输入 2 位数字
    • (right(A1,2)*1<61) 时间太长了,出于某种原因,01 Apr at 11:99 是合法日期..

    【讨论】:

    • 那不是正则表达式;这是一个常规公式。
    猜你喜欢
    • 2020-02-18
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 1970-01-01
    • 2014-12-25
    • 2014-04-21
    相关资源
    最近更新 更多