当用户保存记录时,如何验证表格单元格?

是否有一种方法来验证当一个工作表单元格包含不正确的数据,并告诉用户,然后纠正它,而仍然在工作表中,而不发送电子邮件,让用户回去纠正它?我的设想是,我们希望人们报告他们在给定的一周内在一个项目上工作了多少小时,并使用一周结束日期。我们使用从周一开始到周日结束的周,所以周末的日期应该总是周日的日期。

1)我有一个隐藏的“助手列”,使用WEEKDAY()函数来确定用户在星期结束日期单元格中输入的星期几:

=工作日(截至日期(一周)@row)

2)我有另一个隐藏的“helper列”,它有一个大的IF()语句,使用WEEKDAY()函数来计算输入日期后的下一个周日。

=如果(工作日([星期结束日期]@row) = 1,一周结束日期@row,如果(工作日(截至日期(一周)@row) = 2,周结束日期@row + 6,如果(工作日(截至日期(一周)@row) = 3,星期结束日期@row + 5,如果(工作日(截至日期(一周)@row) = 4周结束日期@row + 4,如果(工作日(截至日期(一周)@row) = 5,一周结束日期@row + 3,如果(工作日(截至日期(一周)@row) = 6,截至日期][一周@row + 2,如果(工作日(截至日期(一周)@row) = 7,截至日期][一周@row + 1,今天())))))))

我想通知用户他们输入了星期五(或任何一天),并告诉他们使用星期日日期。很多时候,人们会在周五的最后一分钟输入时间,然后在周末离开,所以在凌晨发送电子邮件会错过机会。有些人会在每个休假日的表格中单独记录假期天数,并在“周结束日期”一栏中使用该工作日的日期,所以我想给他们一个机会来修改记录。

我找不到一个方法告诉用户,而仍然在表上。是可能的吗?关于如何纠正数据的最佳实践或建议?

最佳答案

  • 保罗H
    保罗H ✭✭✭✭✭
    编辑03/31/22 ✓回答

    用这个创建一个名为“Notice”的新列

    =IF(WEEKDAY([日期输入]@row) <> 7, "结束日期必须是星期日","有效")

    创建一个条件格式来更改日期为红色

    image.png
    image.png


答案

  • 保罗H
    保罗H ✭✭✭✭✭
    编辑03/31/22 ✓回答

    用这个创建一个名为“Notice”的新列

    =IF(WEEKDAY([日期输入]@row) <> 7, "结束日期必须是星期日","有效")

    创建一个条件格式来更改日期为红色

    image.png
    image.png


  • 谢谢你!@Paul H的建议。我测试了它,它工作。但是,它强制通知列紧挨着日期输入列,并始终显示,从而使工作表混乱。如果Smartsheet能够将通知列中的消息以弹出式方式显示,那么它的功能将会更好。