Excel单元格怎么禁止输入一些敏感日期?

有一些敏感日期例如9月18日,7月7日这种不适合做宣传,在做排期的时候请问如何禁止输入这些日期呢,或者不小心输入这些日期之后能有个提示。

使用有效性来控制。

按图示来,选中你要填入日期的列,我这里以C列演示,然后顶端菜单栏 数据,有效性,设置,允许自定义,下面输入公式:

=ISNA(MATCH(C1,A:A,))公式中A:A为敏感日期所在列。然后在出错警告中输入提示语句。

结果演示:

注:由于excel中日期为连续整数,所以此敏感日期输入带年份,我们在excel中输入日月默认为当年,所以仅限当年使用,隔年需要重新设置敏感日期。

追问

奇了怪了,我把c1换成b:b一列,只有在b1输入敏感日期才会提示,b2输入就不提示了。或者我选定一个区域,他也只是区域的第一行提示,第二行就不提示了

追答

不奇怪啊,你这样一输入就成数组公式了,每一个单元格都会对整个B列的值在A3:A7查询一遍,返回一组数值,那你觉得他应该返回哪个数值?

追问

谢谢,明白了,单元格不用b:b,直接b1,然后整列就可以提示了,谢谢老师

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-09-24

假设A列的“*月*日”均为文本

在C2中输入或复制粘贴下列公式

=EDATE(A2,RANDBETWEEN(-10,10)*12)

下拉填充

在D2中输入或复制粘贴下列公式

=IF(COUNTIF(A:A,TEXT(C2,"M月D日"))>0,"敏感日期","")

下拉填充

也可用条件格式来做

第2个回答  2021-09-24
方法1用数据有效性如那位用countif的,但是不同年份可能不行,还需修改
方法2用vba,可以自定义提示,并在提示后自动删除原输入数据,以便重新输入,不同年份也同样使用,代码如下
'按ALT+F11-粘贴代码-将表格另存为启用宏的格式
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Row <> 1 Then
If Cells(Target.Row - 1, 4) <> "" Then
For Each cel In Range("a2:a10")
If cel <> "" Then
If Mid(Cells(Target.Row - 1, 4), 5) = Mid(cel, 5) Then n = n + 1
End If
Next
End If
End If
If n > 0 Then
MsgBox "不能输入" & Cells(Target.Row - 1, 4)
Cells(Target.Row - 1, 4).Clear
Cells(Target.Row - 1, 4).Select
End If
End Sub
第3个回答  2021-09-24
二个方法来实现你的要求:
首先你得吧所谓的敏感日期输入在旁边的一个列中,输入日期后的这个辅助列可以隐藏处理不显示哦!
1、采用条件格式设置,条件为等于预先输入的日期,只要输入了,就可以显示你预先设置特殊的字体、背景颜色
2、采用数据有效性,设置输入的日期不得等于预先输入日期,就可以拒绝敏感日期输入了
第4个回答  2021-09-23

这就是数据验证性,限制录入指定内容,

第一步:选定录入位置,如图中C4:C10

第二步:数据验证:自定义,输入公式,

=countif(A2:A10,C4)=0

出错警告,输入:特殊时期,不得宣传,

效果如图

如有需要可以继续交流!

相似回答